默认每个redis服务都是主节点,只需要改变哪些主节点为从节点即可实现主从模式。缺点:当主节点宕机后需要手动修改从节点的配置文件来将其设置为新的主节点
vi /usr/local/redis/redis-5.0.8/redis.conf # 编辑配置文件 replicaof 192.168.234.131 6379 # 配置主节点ip和端口,表示当前节点为从节点了 masterauth LI1234redis! # 主节点访问密码 requirepass LI1234redis! # 从节点访问密码
redis-cli -h 192.168.234.131 -p 6379 -a LI1234redis! # 启动redis(主1) redis-cli -h 192.168.234.129 -p 6379 -a LI1234redis! # 启动redis(从1.1) redis-cli -h 192.168.234.130 -p 6379 -a LI1234redis! # 启动redis(从1.2)
在主从模式的基础上,通过多个独立运行的进程(哨兵)向正在运行的Redis发送命令并等待其响应,当主机在指定时间内没有响应时将其标记为主观下线,主管下线达到一定的数量时将其标记为客观下线,然后通知管理员(需要编写脚本来实现)并发起故障转移(从.从节点中竞选出新的主节点)
****************************************************************************************** 配置文件只需要配置master的信息就好,不用配置slave信息,因为slave能够被自动检测到(master节点会有关于slave的消息),需要注意的是,配置文件在sentinel运行期间是会被动态修改的,当发生主备切换时候,配置文件中的master会被修改为另外一个slave *******************************************************************************************
vi /usr/local/redis/redis-5.0.8/sentinel.conf # 编辑配置文件 port 26379 # 端口 dir /usr/local/redis/sentinel # 工作目录,自定义的需要新建目录 logfile "sentinel.log" # 日志文件 daemonize yes # 开启后台运行 pidfile /var/run/redis-sentinel.pid # 后台运行时产生的进程文件 protected-mode no # 关闭保护模式 bind 127.0.0.1 192.168.234.131 # 通过以下ip访问哨兵 requirepass LI1234redis # 哨兵密码 // # 监听主节点(名称+IP+端口+客观下线条件) sentinel monitor mymaster 192.168.234.131 6379 1 # 主机在30秒内没有对哨兵做出响应则判定为主观下线 sentinel down-after-milliseconds mymaster 30000 # 客观下线180秒后故障转移没有成功,再发起一次故障转移 sentinel failover-timeout mymaster 180000 # 故障转移成功后,可同时从主节点同步数据的从节点的数量 # 数量越少故障转移过程所需的时间就越长 # 设置为1可以保证一次只能访问一个从节点 sentinel parallel-syncs mymaster 1 # 主、从身份验证密码 sentinel auth-pass mymaster LI1234redis! # 避免脚本重置 sentinel deny-scripts-reconfig yes