gpt4 book ai didi

redis - 当redis在slave中获取key时,为什么重定向到master?

转载 作者:可可西里 更新时间:2023-11-01 11:46:46 24 4
gpt4 key购买 nike

我想知道在 Redis 集群模式下 read key

我的redis集群信息:

127.0.0.1:7001> cluster nodes
2f255a65c7238134a5b2b84671f1d1af01778178 127.0.0.1:7004@17004 slave 4c1fe92725284ae39f9b538674d9f13ae6d75d66 0 1519807517000 5 connected
cf434afde5f61917f46af8982f6f1e72bedabc9e 127.0.0.1:7001@17001 myself,master - 0 1519807516000 2 connected 5461-10922
4c1fe92725284ae39f9b538674d9f13ae6d75d66 127.0.0.1:7002@17002 master - 0 1519807517765 3 connected 10923-16383
281be7a01b553b0600789ec08e30c38949bfdd59 127.0.0.1:7005@17005 slave e2ca464b949bddc0e5414345ad6f238449be8e94 0 1519807516756 6 connected
e2ca464b949bddc0e5414345ad6f238449be8e94 127.0.0.1:7000@17000 master - 0 1519807517563 1 connected 0-5460
d86241a9eb69e8055de05dd95d54b348a836cbda 127.0.0.1:7003@17003 slave cf434afde5f61917f46af8982f6f1e72bedabc9e 0 1519807517000 4 connected

我想知道这个!

bash
❯ redis-cli -c -p 7003
127.0.0.1:7003> keys *
1) "key1"
127.0.0.1:7003> get key1
-> Redirected to slot [9189] located at 127.0.0.1:7001
"val1"
127.0.0.1:7001>

Slave 和 master 有相同的 key
主人有相同的 key 。


但是为什么.. 为什么 get key 命令会重定向到 master???
为什么?
不懂Redis集群...

最佳答案

默认情况下,slave 将客户端重定向到它的 master,因为 slave 上的数据可能已经过时,即写入 master 可能不会同步到 slave。

然而,有时我们并不关心陈旧性,而是希望通过从从机读取(可能陈旧的)数据来扩展读取操作。

为了实现这一点,您可以将READONLY 命令发送到slave。然后该连接上的任何只读操作都将由从服务器提供服务,并且不会重定向到其主服务器。

如果想关闭READONLY模式,可以发送READWRITE命令告诉slave将读请求重定向到master。

注意:

无论slave处于READONLY还是READWRITE模式,你都不能写slave,即写操作总是重定向到master。

更新:slave-serve-stale-dataslave-read-only 配置与READONLYREADWRITE 无关> 命令。

slave-serve-stale-data 控制从站是否应将请求重定向到主站或仅返回错误,当它失去与主站的连接时,或者复制仍在进行中。

slave-read-only 控制是否可以写入slave。但是,这些写入不会传播到 master 和其他 slave,并且在与 master 重新同步后将被删除。

关于redis - 当redis在slave中获取key时,为什么重定向到master?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49061445/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com