如何使用 StackExchange.Redis 客户端在特定的 redis 服务器上设置?
How to SET on specific redis server with StackExchange.Redis client?
我在 docker 个容器中有 3 个 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.???
SE.Redis 期望管理单个逻辑键空间;对多个节点的支持旨在 master/replica 设置或 redis-cluster(尽管在集群的情况下,节点发现是通过 redis API,因此如果可以访问,单个节点就可以了)。有了它:服务器的选择在操作中是隐含的(即写入需要转到主服务器,并且在 "cluster" 的情况下,应该应用键空间分片映射)。
如果您想写入单独的服务器,就好像它们是单独的数据库,您应该为每个服务器使用一个连接;没有一个连接可以跨越所有连接。现在,SE.Redis 可能检测到 3 个主节点并任意选择使用其中一个。您可以通过将 TextWriter
传递给 Connect
/ConnectAsync
方法来查看它的想法。
我在 docker 个容器中有 3 个 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.???
SE.Redis 期望管理单个逻辑键空间;对多个节点的支持旨在 master/replica 设置或 redis-cluster(尽管在集群的情况下,节点发现是通过 redis API,因此如果可以访问,单个节点就可以了)。有了它:服务器的选择在操作中是隐含的(即写入需要转到主服务器,并且在 "cluster" 的情况下,应该应用键空间分片映射)。
如果您想写入单独的服务器,就好像它们是单独的数据库,您应该为每个服务器使用一个连接;没有一个连接可以跨越所有连接。现在,SE.Redis 可能检测到 3 个主节点并任意选择使用其中一个。您可以通过将 TextWriter
传递给 Connect
/ConnectAsync
方法来查看它的想法。