redis集群命令-readonly、readwrite

如题所述

第1个回答  2022-06-26
readonly

        redis集群在默认情况下,slaves服务器不为客户端提供读服务,可以通过设置readonly命令,允许客户端直接读取slaves服务器节点的读服务

如下一个集群中的一个主、从节点

redis 10.3.253.212:8386> role

1) "master"

2) (integer) 6724358244

3) 1) 1) "10.3.253.212"

      2)"8383"                        # 从节点

      3)"6724358244"             

redis10.3.253.212:8386> set mykey 124                 # 设置 key

OK

redis 10.3.253.212:8386> get mykey

"124"

 

进入从节点读取key

redis 10.3.253.212:8383> get mykey

(error) MOVED 14687 10.3.253.212:8386

可以看出,从节点默认不让读取,如果读取从节点,将会重定向到主节点。使用readonly命令,允许从节点提供读服务,如

redis 10.3.253.212:8383> readonly

OK

redis 10.3.253.212:8383> get mykey

"124"

该命令可在指定的master或slave的客户端上执行,但只在从节点上的执行才会让从节点提供读服务。

readwrite

       取消(重置)readonly命令的设置,恢复salve节点默认状态

redis 10.3.253.212:8383> readwrite

OK

redis 10.3.253.212:8383> get mykey

(error) MOVED 14687 10.3.253.212:8386

redis 10.3.253.212:8383>

    该命令可在指定的master或slave的客户端上执行,都会重置readonly命令。