我已经设置了Redis主从配置,其中一个主设备(6379端口)和3个从设备(6380,6381,6382)在同一台机器上运行。看起来集群设置正确,因为我可以在运行info命令时看到以下输出:
# Replication
role:master
connected_slaves:3
slave0:ip=127.0.0.1,port=6380,state=online,offset=29,lag=1
slave1:ip=127.0.0.1,port=6381,state=online,offset=29,lag=1
slave2:ip=127.0.0.1,port=6382,state=online,offset=29,lag=1
master_repl_offset:43
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:42
但无论我在master中添加新密钥,我都会收到以下错误:
(error) CLUSTERDOWN Hash slot not served
在Mac OS X Yosemite中使用redis-3.0.7。
答案 0 :(得分:1)
您可以使用带有redis的ruby脚本来创建群集,如下所述:
/usr/local/redis-3.2.11/src/redis-trib.rb create --replicas 1 192.168.142.128:7001 192.168.142.128:7002 192.168.142.128:7003 192.168.142.128:7004 192.168.142.128:7005 192.168.142.128:7006
答案 1 :(得分:0)
当一个或多个 Redis 节点损坏并且无法再为其配置的哈希槽提供服务时,就会出现问题。
您将不得不再次引导集群以确保节点就要服务的哈希槽达成一致。
如果 Redis 节点包含数据库 0 中的数据或键,您必须在重新运行引导程序之前清除这些数据。