Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Redis客户端。如何分离读/写操作?_Redis_Haproxy_Stackexchange.redis - Fatal编程技术网

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

Redis客户端。如何分离读/写操作?,redis,haproxy,stackexchange.redis,Redis,Haproxy,Stackexchange.redis,我们使用StackExchange.Redis作为Redis客户端 是否可以告诉客户端严格使用127.0.0.1:1001进行写操作,127.0.0.2进行读操作 如果您的redis服务器127.0.0.1:1002从属于127.0.0.1:1001,那么您可以执行这样的“写入”命令 redisClient.StringSet("key", "value", flags: CommandFlags.DemandMaster); 此外,我可以注意到,redisClient本质上会执行需要在mas

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

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


如果您的redis服务器127.0.0.1:1002从属于127.0.0.1:1001,那么您可以执行这样的“写入”命令

redisClient.StringSet("key", "value", flags: CommandFlags.DemandMaster);
此外,我可以注意到,redisClient本质上会执行需要在master上“写入”的命令。对于“读取”命令,您可以编写

redisClient.StringGet("key", flags: CommandFlags.DemandSlave);
但是如果你的奴隶不可用,你会得到一个例外。另一种选择

CommandFlags.PreferSlave
从文件:

如果从属设备可用,则应在从属设备上执行此操作;如果没有从属设备可用,则将在主设备上执行此操作。仅适用于读取操作


当主节点崩溃或您只需重新启动它时,预期的行为是什么?此外,您将无法读取自己的写操作,因为复制是异步的,所以这是两台主机之间的
网络延迟+异步复制引入的任何延迟当主机关闭时,其中一个哨兵升级新的哨兵。至于延迟,在我们的场景中是可以的。