Azure Redis 集群关键事件失效事件

标签 azure redis stackexchange.redis redis-cluster azure-redis-cache

我已经设置了具有 2 个集群的 Azure Redis 缓存服务。我正在使用StackExchange.Redis与缓存通信。我正在使用基于 SSL 的连接字符串按照 Azure 门户中的建议进行连接。

问题:
我的服务有多个实例连接到 Redis。当我从一个节点删除 key 时,我希望在服务的其他实例中捕获该 key (用于本地内存缓存失效)。但是,我注意到并非所有服务实例都会收到关键删除事件。 我确实在所有实例中获取了 Pub/Sub 事件,但似乎 Keyspace 通知并未通过所有 Redis 集群传递。我已经出于测试目的使用 __keyevent@0:__:del 尝试过此操作,但我注意到了该问题。

初始化我的 ConnectionMultiplexer 如下:

ConnectionMultiplexer.Connect(connectionString)

我已经翻阅了https://github.com/redis/redis/issues/2541并发现 Keyspace 通知不会跨集群传递,根据问题 - 解决方案是将客户端与所有主节点连接起来,在我的例子中,Redis 通过 Azure 设置,并且不太清楚如何指定所有主节点(地址)。

如有任何帮助,我们将不胜感激。提前致谢。

更新: Nuget for redis 客户端:StackExchange.Redis.StrongName 1.2.6

最佳答案

有一个 open PR添加对集群键空间通知的支持。解决方法是使用 Redis pub/sub 自己处理 key 失效...您只是无法获得对 key 过期的自然 Redis TTL 支持。

关于Azure Redis 集群关键事件失效事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65524424/

相关文章:

azure - 应用服务的响应时间指标到底是什么

c# - 如何使用 CURL 或 ARC 向受 Azure AD 授权保护的 Web Api 发出请求

java - 使用Redis或其他DB时应在获取之前调用hasKey方法

c# - 用于投票后和用户声誉的 Redis 排序集

stackexchange.redis - 没有可用的连接来服务此操作(Redis 客户端)

redis - 使用ZRANGEBYSCORE获得5个最高分-Redis

azure - 使用 ARM 模板在 Azure SQL DB 上设置透明数据加密

mysql - 如何设置从本地 MySQL 到 Azure PostgreSQL 数据库的复制

redis - 聚合数据存储

redis - 存储在 Redis 中的口音不可读