sentinel架构说明: 主机: 10.10.10.47 Sentinel节点: testdb47 Sentinel端口: 6378 Redis实例端口: 6379 角色:Master 主机: 10.10.10.62 Sentinel节点: testdb62 Sentinel端口: 6378 Redis实例端口: 6379 角色:Slave 主机: 10.10.10.63 Sentinel节点: testdb63 Sentinel端口: 6378 Redis实例端口: 6379 角色:Slave 在10.10.10.47/62/63 上安装Redis软件,步骤省略 建立复制关系 登录 testdb62 # su redis $ redis-cli -h 10.10.10.62 -p 6379 -a 'AY*s23y7Qt5w+J#rz^FoEBBB*Rc$u^qg' 10.10.10.62:6379> SLAVEOF 10.10.10.47 6379 OK 10.10.10.62:6379> INFO replication # Replication role:slave master_host:10.10.10.47 master_port:6379 master_link_status:up master_last_io_seconds_ago:4 master_sync_in_progress:0 slave_repl_offset:14 slave_priority:100 slave_read_only:1 connected_slaves:0 master_replid:30018a98ae864edff807a94f50b8d0c2b714e35d master_replid2:0000000000000000000000000000000000000000 master_repl_offset:14 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:2147483648 repl_backlog_first_byte_offset:15 repl_backlog_histlen:0 登录 testdb63 # su redis $ redis-cli -h 10.10.10.63 -p 6379 -a 'AY*s23y7Qt5w+J#rz^FoEBBB*Rc$u^qg' 10.10.10.63:6379> SLAVEOF 10.10.10.47 6379 OK 10.10.10.63:6379> INFO replication # Replication role:slave master_host:10.10.10.47 master_port:6379 master_link_status:up master_last_io_seconds_ago:6 master_sync_in_progress:0 slave_repl_offset:14 slave_priority:100 slave_read_only:1 connected_slaves:0 master_replid:30018a98ae864edff807a94f50b8d0c2b714e35d master_replid2:0000000000000000000000000000000000000000 master_repl_offset:14 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:2147483648 repl_backlog_first_byte_offset:1 repl_backlog_histlen:14 一主两从架构自此搭建成功。 参数配置和启动 Redis sentinel su - redis vi /data/redis/conf/sentinel_6378.conf bind 0.0.0.0 port 6378 daemonize yes dir /data/redis/data logfile "sentinel_6378.log" loglevel debug sentinel monitor mymaster 127.0.0.1 6379 2 sentinel auth-pass mymaster AY*s23y7Qt5w+J#rz^FoEBBB*Rc$u^qg sentinel down-after-milliseconds mymaster 30000 sentinel parallel-syncs mymaster 1 sentinel failover-timeout mymaster 180000 sentinel deny-scripts-reconfig yes 启动 Redis sentinel redis-sentinel /data/redis/conf/sentinel_6378.conf 检测当前所有已启动的sentinel实例的状态。 $ redis-cli -h 10.10.10.47 -p 6378 info Sentinel # Sentinel sentinel_masters:1 sentinel_tilt:0 sentinel_running_scripts:0 sentinel_scripts_queue_length:0 sentinel_simulate_failure_flags:0 master0:name=mymaster,status=ok,address=127.0.0.1:6379,slaves=2,sentinels=4 或者登录任意一个已启动的sentinel实例 $ redis-cli -h 10.10.10.47 -p 6378 10.10.10.47:6378> sentinel sentinels mymaster 1) 1) "name" 2) "c4db878bff2796c617d34d3a8492c3d54067e8c7" 3) "ip" 4) "10.10.10.62" 5) "port" 6) "6378" 7) "runid" 8) "c4db878bff2796c617d34d3a8492c3d54067e8c7" 9) "flags" 10) "sentinel" 11) "link-pending-commands" 12) "0" 13) "link-refcount" 14) "1" 15) "last-ping-sent" 16) "0" 17) "last-ok-ping-reply" 18) "271" 19) "last-ping-reply" 20) "271" 21) "down-after-milliseconds" 22) "30000" 23) "last-hello-message" 24) "316" 25) "voted-leader" 26) "?" 27) "voted-leader-epoch" 28) "0" 2) 1) "name" 2) "f39ef24c41889c458ac93552819d202e575625d0" 3) "ip" 4) "127.0.0.1" 5) "port" 6) "6378" 7) "runid" 8) "f39ef24c41889c458ac93552819d202e575625d0" 9) "flags" 10) "sentinel" 11) "link-pending-commands" 12) "0" 13) "link-refcount" 14) "1" 15) "last-ping-sent" 16) "0" 17) "last-ok-ping-reply" 18) "619" 19) "last-ping-reply" 20) "619" 21) "down-after-milliseconds" 22) "30000" 23) "last-hello-message" 24) "639" 25) "voted-leader" 26) "?" 27) "voted-leader-epoch" 28) "0" 3) 1) "name" 2) "3fcd7c5285251eaba1a674acf2a5e8fb0219aa83" 3) "ip" 4) "127.0.0.1" 5) "port" 6) "6378" 7) "runid" 8) "3fcd7c5285251eaba1a674acf2a5e8fb0219aa83" 9) "flags" 10) "sentinel" 11) "link-pending-commands" 12) "0" 13) "link-refcount" 14) "1" 15) "last-ping-sent" 16) "0" 17) "last-ok-ping-reply" 18) "959" 19) "last-ping-reply" 20) "959" 21) "down-after-milliseconds" 22) "30000" 23) "last-hello-message" 24) "338" 25) "voted-leader" 26) "?" 27) "voted-leader-epoch" 28) "0" 至此,Redis sentinel搭建完毕。