集群 Sending command to master in replication handshake: -Writing to master: Unknown error 解决办法: 找到配置文件,比如windows下为redis.windows.conf文件,修改里面的配置信息:
bind 127.0.0.1 192.168.XXX.XXX
192.168.XXX.XXX为计算机本地的IP地址
创建集群
D:\javaTools\redis\ruby>ruby redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384
cmd /k "cd /d D:\javaTools\redis\ruby&&ruby redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384"
ruby redis-trib.rb check 127.0.0.1:6381 检查集群状态
增加slave节点
ruby redis-trib.rb add-node 127.0.0.1:6382 127.0.0.1:6381 //第一个节点为新增的节点 第二个节点为集群中的节点
切换到新增加的节点,不能直接使用 redis-cli.exe,默认是6379的实例
D:\javaTools\redis\cluster\6382>redis-cli -p 6384 -h 127.0.0.1
使用CLUSTER REPLICATE 命令改变一个从节点的主节点。 c16134b32d1437248a315092cceb2a4b2263f703 为主节点的ID
127.0.0.1:6382> cluster replicate c16134b32d1437248a315092cceb2a4b2263f703
查看127.0.0.1:6382是否指向指定的master
127.0.0.1:6382> cluster nodes
集群重启后恢复数据(重点)
- 重启集群的实例必须清空.aof,.rdb,nodes.conf 文件,(备份)
- 虽然每个实例都有.aof,.rdb,我们只需要恢复master节点的备份文件
- 命令:
检查并修复aof持久化文件
./redis-check-aof --fix
集群下持久化的aof rdb 数据 windows文件合并
type appendonly8*.aof >> appendonly.aof type dump8*.rdb >> dump.rdb
从外部导入数据到集群。。。(终于找到了) 127.0.0.1:6388 为单机redis,将数据恢复到单机中,然后通过--from 导入到 127.0.0.1:6379(集群中的节点)
ruby redis-trib.rb import --from 127.0.0.1:6388 127.0.0.1:6379
主从
info Replication