主服务器配置
主服务器写操作命令时,同时发布给从所有从服务器
从服务器配置
设定为从服务器后,无法写入数据,只能读取
从服务器发送自己的偏移量给主服务器,进行对比,不一致进行同步操作;差异偏移量在主服务器缓存区队列中存在进行增量同步,不存在则完全同步
主服务器密码
# masterauth <master-password>
配置主服务器 ip:端口
slaveof 111.111.111.111 6379
replicaof 120.78.225.33 6379 #5.0写法
查看主服务器信息
redis-cli -p 6379 info replication
哨兵配置
当主服务器宕机时,进行主备切换,根据服务器运行ID判断是否之前请求的主服务器运行ID,如果切换了主服务器则进行完全同步
哨兵服务器发送ping命令监测主服务器,30秒内未响应,判断为超时
配置哨兵文件
sentinel.conf #安装包下
开启守护进程
daemonize yes
配置日志
logfile "/www/server/redis-sentinel.log"
-sdown slave 47.106.209.243:6379 47.106.209.243 6379 @ mymaster 120.78.225.33 6379 #切换日志记录
监测的服务器地址
sentinel monitor mymaster 127.0.0.1 6379 2 #数字2代表同时x个哨兵检测到服务器宕机,进行主备切换操作
心跳超时时间
sentinel down-after-milliseconds mymaster 30000 #哨兵服务器发送ping命令监测主服务器,30秒内未响应,判断为超时
主备切换超时时间
sentinel failover-timeout mymaster 180000 #主备切换默认3分钟内为成功切换,重新进行主备切换
同时进行完全同步数
sentinel parallel-syncs mymaster 1 #主备切换时,允许同时进行,完全同步操作,默认1 一次一台。同步状态的服务器,无法提供对外服务
配置检测服务器密码
sentinel auth-pass <master-name> <password> #没有密码可注释
禁止命令脚本修改配置
sentinel deny-scripts-reconfig yes #默认不修改,不允许sentinel set 命令修改配置
哨兵运行
运行哨兵检测
redis-sentinel /java/sentinel.conf
查看哨兵状态
redis-cli -p 26179 info sentinel
master0:name=mymaster,status=ok,address=127.0.0.1:6379,slaves=1,sentinels=2 #监视服务器地址, slaves 备服务器格式 ,sentinels 受到监视个数
查看监视的服务器信息
redis-cli -p 6379 info replication
# Replication
role:master #身份
connected_slaves:1 #备服务器个数
手动主备切换
redis-cli -p 26179 sentinel failover mymaster #默认mymaster , 切换后,之前备用服务器配置slaveof自动删除,之前主服务器自动新增replicaof配置