sách gpt4 ai đã đi

Redis哨兵中的C#操作

In lại 作者:行者123 更新时间:2023-12-04 08:10:45 28 4
mua khóa gpt4 Nike

我已经为 HA redis 集群(2 个副本、1 个主节点、3 个哨兵)设置了本地 docker 环境。只有哨兵暴露端口(10021、10022、10023)。
我使用的是 stackexchange.redis C# 客户端 v.2.1.58,并尝试做一些基本的操作。
这是我的示例代码。

  ConfigurationOptions configuration = new ConfigurationOptions
{
/// sentinels
EndPoints =
{
{ "localhost", 10021 },
{ "localhost", 10022 },
{ "localhost", 10023 }
},
CommandMap = CommandMap.Sentinel,
ServiceName = "redismaster",
Ssl = false,
};

ConnectionMultiplexer connection = ConnectionMultiplexer.SentinelConnect(configuration, Console.Out);
IDatabase database = connection.GetDatabase();
尝试设置操作时
   database.StringSetAsync("key", "value");
我越来越

This operation has been disabled in the command-map and cannot be used: SET


我认为操作是针对哨兵节点完成的,但我不确定。
对此有帮助吗?
在这里 repo https://github.com/rms1234567890/redis-sentinel

1 Câu trả lời

由于 StackExchange Redis 的最新变化,这将不起作用,您需要使用服务名称直接与 Sentiels 连接,例如

 using(var connection2= ConnectionMultiplexer.Connect("localhost:10021,localhost:10022,localhost:10023,serviceName=redismaster,AllowAdmin=true"))
{
IDatabase database2 = connection.GetDatabase();
database2.StringSet("test-key", "value");
database.StringGet("test-key");
}
当您在本地机器上运行您的应用程序时,即使这也会失败,但如果您在与哨兵/Redis 相同的网络中的 docker 实例中运行它,这应该可以工作。简而言之,您还需要公开主 Redis 实例的端口,因为另一个从站也可以成为主站,因此您需要允许所有 Redis 实例(主站、从站和哨兵)的入站流量规则

关于Redis哨兵中的C#操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65978316/

28 4 0
Bài viết được đề xuất: reactjs - React 中的 Font Awesome 图标
Bài viết được đề xuất: python - 将 np-arrays 的字典保存到 json 文件
Bài viết được đề xuất: python-3.x - 可以在 gpu 上运行 celery 吗?
Bài viết được đề xuất: reactjs - 使用 socketio 将 Action 发射到不同的 react 组件中
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com