如果您不小心写入从站,Redis Sentinel的预期行为是什么?

时间:2019-01-08 22:25:48

标签: redis redis-sentinel

如果您不小心向Redis发出了写命令(例如SETBLPOP,我想弄清楚Redis Sentinel设置(不是Redis群集)中的预期行为是什么奴隶。我的直觉是您会立即收到错误消息(尽管我不知道错误代码是什么)。今天,我们在生产环境中看到了一件奇怪的事情,使得实际行为似乎是永久阻塞而不是立即返回错误(在这种情况下,BLPOP是我们发出的特定命令)。我试图找出哪个兔子漏洞:我们的Redis配置的兔子漏洞是错误的,或者我们的代码的兔子漏洞是错误的。如果我知道Redis Sentinel中奴隶的预期行为会有所帮助,但是大约两个小时的Google在文档中的任何地方都没有产生任何结果。

1 个答案:

答案 0 :(得分:0)

在具有Redis 4.0.1和只读从属设备的环境中,设置值时会立即返回错误:

127.0.0.1:6380> get foo
"hi"
127.0.0.1:6380> set foo bar
(error) READONLY You can't write against a read only slave.

从Redis 2.6开始,从站默认为只读,您可以在https://redis.io/topics/replication上找到更多信息