info serverinfo replicationclient list 查看复制相关客户端信息,flags=M为主节点,flags=S为从节点redis-cli -p 6379 -c命令行
slaveof 127.0.0.1 6387slaveof no onedebug reload 该命令会阻塞当前节点,对于大数据量和无法容忍阻塞环境谨慎使用psync ? -1psync {id} -1psync {id} {offset}配置信息
slave-read-only yes 默认只读repl-disable-tcp-nodelay no  默认关闭requirepass 默认注释,主节点设置了密码,从节点复制必须配置masterauth参数repl-timeout 大数据量(大于6G)同步时一定注意设置超时,默认超时时间60秒client-output_buffer_limit slave 256MB 64MB 60 60秒内连续超过64mb溢出,单次超过256mb溢出,溢出情况主节点自动关闭复制,同步失败slave-serve-stale-data 默认开启,开启后从节点响应全部命令,即使从节点正在执行复制repl-ping-slave-period 控制主节点发送ping命令给从节点的频率min-slaves-to-writemin-slaves-max-lag命令行
redis-sentinel redis-sentinel-26379.conf 或者 redis-server redis-sentinel-26379.conf --sentinelsentinel masterssentinel master <主节点别名>sentinel slaves <主节点别名>sentinel sentinels <主节点别名>redis-cli -h 127.0.0.1 -p 26379 info sentinelsentinel set <param> <value> 支持一下参数设置| 参数 | 使用方法 | 
|---|---|
| quorum | sentinel set mymaster quorum 2 | 
| down-after-milliseconds | sentinel set mymaster down-after-milliseconds 30000 | 
| failover-timeout | sentinel set mymaster failover-timeout 360000 | 
| parallel-syncs | sentinel set mymaster parallel-syncs 2 | 
| notification-script | sentinel set mymaster notification-script /opt/xx.sh | 
| client-reconfig-script | sentinel set mymaster client-reconfig-script /opt/yy.sh | 
| auth-pass | sentinel set mymaster auth-pass masterPassword | 
`sentinel set` 命令只对当前sentinel节点有效
    
`sentinel set` 命令执行完成后立即生效,无需使用 `config rewrite` 刷新配置
    
`sentinel` 对外不支持 `config` 命令
sentinel get-master-addr-by-name <master-name>sentinel reset <pattern> 包含清除主节点的相关状态,重新发现从节点和sentinel节点sentinel failover <master-name> 故障转移完成后其他sentinel节点按照故障转移结果更新自身配置quorum 数量 sentinel ckquorum <master-name>sentinel flushconfigsentinel remove <master-name>sentinel monitor <master-name> <ip> <port> <quorum>sentinel is-master-down-by-addr <ip> <port> <current_epoch> <runid>`ip` 主节点ip
    
`port` 主节点端口
    
`current_epoch` 当前配置纪元
    
`runid` 当为'*'时,sentinel节点直接交换对主节点下线的判定。当为当前sentinel节点的runid时,作用是当前sentinel节点希望目标sentinel节点统一自己成为领导者的请求
sentinel get-master-addr-by-name master-name配置信息
redis-sentinel-26379.conf
port 26379
daemonize yes
logfile "26379.log"
dir /opt/soft/redis/data
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel 节点默认端口 26379sentinel monitor <主节点别名> <主节点地址> <主节点端口> <主节点失败后至少需要多少哨兵节点同意才能升级为主节点的数量>port 代表sentinel节点的端口dir 代表sentinel节点的工作目录down-after-milliseconds sentinel节点连接主节点的超时时间parallel-syncs 从节点对新主节点发起复制操作的从节点个数failover-timeout 故障转移超时时间,作用于故障转移的每个阶段sentinel auth-pass <master-name> <password> 如果主节点设置了密码,哨兵节点同样需要设置相同密码才能访问sentinel notification-script <master-name> <script-path> 配置故障转移期间通过指定的脚本发送一些告警级别的时间信息,其中script-path是脚本路径sentinel client-reconfig-script <master-name> <script-path> 故障转移结束后触发指定的脚本命令行
cluster nodescluster meet {ip} {port}cluster replicate {nodeId} 该命令必须在对应的从节点上执行redis-cli -h 127.0.0.1 -p 6379 cluster addslots {0...5461}cluster setslot {slot} importing {sourceNodeId}cluster setslot {slot} migrating {targetNodeId}cluster getkeysinslot {slot} {count}migrate {targetIp} {targetPort} "" 0 {timeout} keys {keys...}cluster setslot {slot} node {targetNodeId} 通知槽分配给目标节点cluster forget {downNodeId}cluster keyslot {key}cluster slotscluster slaves {nodeId}cluster failover 完成手动故障迁移cluster failover force 一般用于主节点宕机后无法执行自动故障迁移cluster failover takeover 一般用于集群内超过一半以上主节点故障场景,慎用redis-trib.rb 工具使用
redis-trib.rb create --replicas 1 127.0.0.1:6481 127.0.0.1:6482 127.0.0.1:6483 127.0.0.1:6484 127.0.0.1:6485 127.0.0.1:6486redis-trib.rb check 127.0.0.1:6481redis-trib.rb add-node new_host:new_port existing_host:existing_port --slave --master-id <arg>redis-trib.rb add-node 127.0.0.1:6385 127.0.0.1:6379redis-trib.rb reshard host:port --from <arg> --to <arg> --slots <arg> --yes --timeout <arg> --pipeline <arg>redis-trib.rb rebalanceredis-trib.rb rebalance 127.0.0.1:6379redis-trib.rb del-node {主节点host:主节点port} {从节点downNodeId}redis-trib.rb info 127.0.0.1:6379redis-trib.rb import host:port --from <arg> --copy --replaceNotes:
配置信息
# 节点端口
port 6379
# 开启集群模式
cluster-enabled yes
# 节点超时时间,单位毫秒
cluster-node-timeout 15000
# 集群内部配置文件
cluster-config-file "nodes-6379.conf"
cluster-require-full-coverage no