场景
redis哨兵模式执行select 0命令报错:
(error) ERR unknown command select
, with args beginning with: 0
解决方案
sentinel-10.12.168.71-6395 主节点名(注,这个节点名通过redis-cli是无法直接连的,但是spring可以)
三个node节点为:
10.12.168.68:6395,10.12.168.69:6395,10.12.168.70:6396
redis-cli -h sentinel-10.12.168.71-6395 -p 6395 -a 1234 不通
redis-cli -h 10.12.168.68 -p 6395 -a 1234 通,但是执行 select 0 报错
redis-cli -h 10.12.168.69 -p 6395 -a 1234 通,但是执行 select 0 报错
redis-cli -h 10.12.168.70 -p 6396 -a 1234 通,但是执行 select 0 报错
那么怎么办呢?
虽然不能执行select 0
,但是可以执行 info
,找到主节点信息,然后连接主节点再进行操作即可:
redis-cli -h 10.12.168.71 -p 6395 -a 1234
select 0
keys "orgList"
del "orgList"
为什么会出现上述情况呢?
因为哨兵的nodes不是主节点,也不是从节点,也就是说不是数据节点,而是监控节点,主要为了当主节点挂掉之后,选举新的主节点。
所以在nodes节点是无法运行select、keys等命令的。