Redis客户端。如何分开读/写操作?

时间:2017-05-23 19:27:28

标签: redis haproxy stackexchange.redis

我们使用StackExchange.Redis作为redis客户端。

是否可以告诉客户端严格使用127.0.0.1:1001进行写入,严格使用127.0.0.2进行读取?

enter image description here

1 个答案:

答案 0 :(得分:0)

如果您的redis服务器127.0.0.1:1002是127.0.0.1:1001的slave,那么您可以执行这样的'write'命令

redisClient.StringSet("key", "value", flags: CommandFlags.DemandMaster);

另外,我可以注意到,redisClient本质上会执行命令需要'写'在master上。对于“读取”命令,您可以编写

redisClient.StringGet("key", flags: CommandFlags.DemandSlave);

但如果您的奴隶不可用,您将获得例外。另一种选择

CommandFlags.PreferSlave

来自文档:

  

此操作应在从站上执行(如果可用),但如果没有可用的从站,则将在主站上执行。仅适用于读取操作。