Redis 5.0.9配置主从复制
1、准备工作
准备两台以上已经安装Redis的服务器,这里以两台安装了Redis5.0.9的Centos 7 为例子
Redis安装:https://www.cnblogs.com/chenppp/p/13437212.html
主节点:192.168.199.50
从节点:192.168.199.51
Redis 提供了复制功能,将一个主数据库的数据自动同步到从数据库,防止数据丢失。
同时还可以配置一主多从来分担主压力,主只接受写的操作,将读的操作给从来实现;其中从库也可以接受其它从库的同步请求。
如果主、从因为网络原因出现连接断开,网络正常后从可以自动连接主,连接成功后主会将完整的数据同步一次给从,保证数据一致性。
主从复制的原理过程:
1、从节点启动后,会连接到主节点,从节点发送 Ping 信号,主节点返回 Pong,两边能互相通信,建立连接
2、建立连接后,从节点向主节点发送Psync信号,主节点接收信号后,全量同步数据给从节点
3、接下来,主节点就会持续的把写命令发送给从节点,保证主从数据一致性。
2、配置主从
主节点配置:
bind 192.168.199.50 # 监听地址 timeout 300 # 超时时间 daemonize yes # 作为守护进程运行 pidfile /usr/local/redis/logs/redis_6379.pid # 生成pid文件路径,可使用默认路径 logfile "/usr/local/redis/logs/redis.log" # 生成的日志文件路径 requirepass password # Redis 认证密码
repl-backlog-size 1mb # 设置backlog缓冲区大小,在slave端失连时存放要同步到slave的数据,因此当一个slave要重连时,经常是不需要完全同步的,执行局部同步就足够了。backlog设置的越大,slave可以失连的时间就越长
repl-timeout 180 #快照同步的超时时间,同步时超过这个时间,会被认为同步失败
client-output-buffer-limit slave 256mb 64mb 60 #如果增量同步的缓存大于256MB,或者超过60s大于64MB,则触发快照同步
从节点配置
bind 192.168.199.50 # 监听地址 timeout 300 # 超时时间 daemonize yes # 作为守护进程运行 pidfile /usr/local/redis/logs/redis_6379.pid # 生成pid文件路径,可使用默认路径 logfile "/usr/local/redis/logs/redis.log" # 生成的日志文件路径
requirepass password # redis 认证 replicaof 92.168.199.50 6379 # 主节点ip和端口
masterauth password # 主节点密码
replica-read-only yes # 从节点只读
启动主、从节点
主节点
从节点
登录主节点redis,创建一个key
[root@swarm-node1 bin]# ./redis-cli -h 192.168.199.50 -p 6379 192.168.199.50:6379> AUTH password OK 192.168.199.50:6379> set id redis OK 192.168.199.50:6379> get id "redis" 192.168.199.50:6379>
登录从节点,查看数据是否有同步过来
[root@swarm-node2 bin]# ./redis-cli -h 192.168.199.51 -p 6379 192.168.199.51:6379> AUTH password OK 192.168.199.51:6379> KEYS * 1) "id" 192.168.199.51:6379> GET id "redis" 192.168.199.51:6379> 192.168.199.51:6379>