redis主从复制

1.基本概述

主从复制就是master以写为主,Slave以读为主,而当master数据变化的时候,自动将新的数据异步同步到其它slave数据库。

 

2.配置方式

三边网络相互ping通且注意防火墙配置

先创建一个目录存放持久化文件

mkdir /myredis/dirfiles

 

修改配置文件

vim redis.conf

 

允许后台启动,daemonize no改为 daemonize yes

 

允许连接,所以关闭保护模式,改为 protected-mode no

 

注释掉bind 127.0.0.1只能本机访问,或改成本机IP地址,否则影响远程IP连接

 

取消注释,requirepass 后接你自己设置的密码

 

更改持久化目录

 

为便于区分,不同主机使用不同端口,改为对应端口即可。

 

pid目录,为便于区分,不同主机使用不同端口,命名加上对应端口

 

日志目录,为便于区分,不同主机使用不同端口,命名加上对应端口,需要创建该目录

mkdir /myredis/log

 

RDB配置文件,为便于区分,不同主机使用不同端口,命名加上对应端口

 

从机访问主机的通行密码masterauth和主机地址replicaof,只需要配置从机即可

保存并退出即可

 

各个主机开启

redis-server /myredis/redis6379.conf

登入

redis-cli -a 123456 -p 6379

 

查看从机的日志,可以看到连接上了主机了

vim /myredis/log/6380.log

 

主从关系查看

info replication

主机查看

从机查看

 

3.注意事项

所以节点都为空

 

在主节点

set k1 v1

可以看到从节点也可以获取,数据同步

get k1

 

而从机不能写入数据,不能对只读副本进行写操作。

 

主机宕机后,从机会检测到master处于down状态

这时master重启后,依旧作为master节点

而从机就会检测到master处于up状态,重新同步数据。

 

将从机节点上加入master的配置删除掉,那么主机就检测不到从节点了

 

从机节点上没有加入master的配置,重启后作为master节点

 

从节点手动加入master节点

slaveof 8.134.133.76 6379

不过从机重启后就失效了

 

上一个slave可以是下一个slave的master, slave同样可以接收其他slaves的连接和同步请求,那么该slave作为了链条中下一个的master,可以有效减轻主master的写压力

我们将6381加入6380

 

查看6380的主从关系,发现多了一个连接slave,当然都不能有写操作。

 

停止同步,自己变成master

slaveof no one

 

 

4.总结

注意:

  • master启动后,slave数据库对master的同步是全部数据,就算slave数据库宕机再重启,在这期间master写入的数据,在slave数据库重启后,依旧会写入slave数据库。
  • slave首次全新连接master,一次完全同步(全量复制)将被自动执行,slave自身原有数据会被master数据覆盖清除
  • master节点收到sync命令后会开始在后台保存快照(即RDB持久化,主从复制时会触发RDB),同时收集所有接收到的用于修改数据集命令缓存起来, master节点执行RDB持久化完后,master将rdb快昭文件和所有缓存的命今发送到所有slave以完成一次完全同步
  • 从机下线后,重启后master会检查backlog里面的offset, master和slave都会保存一个复制的offset还有一个masterId,offset是保存在backlog中的。Master只会把已经复制的offset后面的数据复制给Slave,类似断点续传。
  • 由干所有的写操作都是先在Master上操作,然后同步更新到Slave上,所以从Master同步到Slave机器有一定的延迟,当系统很繁忙的时候,延迟问题会更加严重, Slave机器数量的增加也会使这个问题更加严重。

 

master对slave监控频率。

 

参考

Redis replication | Redis

暂无评论

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇