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