Redis客户端。如何分离读/写操作?
我们使用StackExchange.Redis作为Redis客户端 是否可以告诉客户端严格使用127.0.0.1:1001进行写操作,127.0.0.2进行读操作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
如果您的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
从文件:
如果从属设备可用,则应在从属设备上执行此操作;如果没有从属设备可用,则将在主设备上执行此操作。仅适用于读取操作
当主节点崩溃或您只需重新启动它时,预期的行为是什么?此外,您将无法读取自己的写操作,因为复制是异步的,所以这是两台主机之间的
网络延迟+异步复制引入的任何延迟当主机关闭时,其中一个哨兵升级新的哨兵。至于延迟,在我们的场景中是可以的。