首页 > 解决方案 > 如何使用 StackExchange.Redis 客户端在特定的 redis 服务器上设置?

问题描述

我有 3 个在 docker 容器中运行的 redis 服务器。从 redis-cli 我可以在特定服务器上设置。

SET myValue 100

如何使用 StackExchange.Redis 客户端执行此操作?

我在服务器 api 中看不到任何允许这样做的东西。请记住,我对 Redis 的了解并不多。

var connection = ConnectionMultiplexer.Connect("localhost:6379,localhost:6380,localhost:6381");
var server = connection.GetServer("localhost", 6381);
server.???

标签: redisstackexchange.redis

解决方案


SE.Redis 期望管理单个逻辑键空间;对多个节点的支持适用于主/副本设置,也适用于 redis-cluster(尽管在集群的情况下,节点发现是通过 redis API 实现的,因此如果可以访问单个节点就可以了)。有了这个:服务器的选择是从操作中隐含的(即写入需要转到主服务器,在“集群”的情况下,应该应用键空间分片映射)。

如果您想像单独的数据库一样写入单独的服务器,您应该使用每个服务器的连接;没有一个单一的连接可以跨越所有这些。目前,SE.Redis 可能正在检测 3 个主节点并任意选择使用其中一个。TextWriter您可以通过将 a 传递给Connect/ConnectAsync方法来查看它的想法。


推荐阅读