Redis主从 主从必读事项 通过主从配置可以实现读写分离(从机默认只读) slave首次启动或者重启连接到master时,会导致主库bgsave。这一点可以通过Redis的debug日志看得到 设置主从后,首次部署从库是增量同步的,原本
2966:M 04 Mar 05:29:11.533 # Connection with slave 192.168.56.101:6379 lost.
2966:M 04 Mar 05:29:12.612 * Slave 192.168.56.101:6379 asks for synchronization
2966:M 04 Mar 05:29:12.612 * Partial resynchronization request from 192.168.56.101:6379 accepted. Sending 0 bytes of backlog starting from offset 1.
配置好slave后,slave会马上master建立连接,slave立即发送sync命令, 而master马上异步同步数据. 不管是第一次连接还是重新连接, master都会启动一个后台进程, 将数据库快照保存到文件中,同时master主进程会开始收集新的写命令并缓存.后台进程完成写文件后, master就发送文件给slave, slave将文件保存到硬盘上, 再加载到内存中, 接着master就会把缓存的命令转发给slave, 后续master将收到的写命令发送给 slave. 如果master同时收到多个slave发来的同步连接命令, master只会启动一个进程来写数据库镜像, 然后发送给所有的slave.
# master最少得有多少个健康的slave存活才能执行写命令
# 当min-slaves-to-write=1时,slave去维护断开的情况下,主库此时只能读,不能写
# 只有一个从库且要去维护的时候,请先设置 最少写从库的个数为0,再去维护从库
min-slaves-to-write 1
# 延迟小于min-slaves-max-lag秒的slave才认为是健康的slave
# 里的延迟值就是提到的INFO replication命令的lag值。
min-slaves-max-lag 10
# 如果主从要跨服务器,需要关闭保护模式,负责无法连接.
# protected-mode yes
protected-mode no
# 如果跨服务器需要设置修改或者关闭IP的监听地址,否则外部无法连接(该IP绑定的意思是只接收来自于该IP地址的请求)
# bind 127.0.0.1
bind 0.0.0.0
# 设置连接密码(非必须,可以不设置)
requirepass redis-passWord
##### 数据持久化设置
#主机也可关闭数据持久化,提高写入的性能,把持久化策略改成这样既可
# save 900 1
# save 300 10
# save 60 10000
save ""
SLAVEOF host port
# 启动从机,同时为从机指定读取的配置文件,设置主机的地址(主机如果有密码才需要设置masterauth)
redis-server /etc/redis/redis.conf --slaveof 192.168.56.100 6379 --masterauth redis-password
# 也可以通过先启动从机的服务再为从机设置主机地址
root@ubuntu:~# redis-cli
127.0.0.1:6379> slaveof 192.168.56.100 6379
OK
# 通过修改下面的配置文件设置主机地址和认证密码(主机如果有密码才需要设置masterauth)
# slaveof
# masterauth
slaveof 192.168.56.100 6379
masterauth redis-password
##### 数据持久化设置
# 开启aof
# 此选项为aof功能的开关,默认为“no”,可以通过“yes”来开启aof功能
# 只有在“yes”下,aof重写/文件同步等特性才会生效
appendonly yes
# aof 日志文件名
appendfilename redis.aof
# 每秒记录一次日志,建议everysec
appendfsync everysec
# 重写过程中是否向日志文件写入,yes 代表rewrite过程中,不向aof文件中追加信息,rewrite结束后再写入,no 代表rewrite执行的同时,也向aof追加信息
no-appendfsync-on-rewrite yes
# 触发重写文件增长百分比 默认100%
auto-aof-rewrite-percentage 100
# 触发重写最小aof文件尺寸
auto-aof-rewrite-min-size 64mb
# 在从机中执行该命令可以取消该从机与主机的主从关系
slaveof no one
# 执行案例
127.0.0.1:6379> slaveof no one
OK
# 查看复制情况
info replication
root@ubuntu:~# redis-cli info replication
# Replication
role:master
connected_slaves:2
slave0:ip=192.168.56.102,port=6379,state=online,offset=2576,lag=1
slave1:ip=192.168.56.101,port=6379,state=online,offset=2576,lag=1
master_replid:aa50063cb231eb77f42074a72739b7dbda163825
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:2576
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:2576
root@ubuntu:~# redis-cli info replication
# Replication
role:slave
master_host:192.168.56.100
master_port:6379
master_link_status:up
master_last_io_seconds_aGo:6
master_sync_in_progress:0
slave_repl_offset:280
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:b481fcb52e9f8ffe1e3180f09e0e982ae0b2fcf9
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:280
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:267
repl_backlog_histlen:14
--结束END--
本文标题: Redis主从
本文链接: https://lsjlt.com/news/4791.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-10-23
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0