Caching 用于删除操作的带有StackExchange.Redis的Redis键空间通知
我一直在搜索如何使用ServiceStack.Redis库在Redis上执行密钥空间通知订阅以删除密钥 通过检查git hub和其他网站上的可用测试,我发现iResubscription可以用于订阅特定的Redis key事件,对于set操作,它工作得非常好,但对于Delete操作,它不会被调用 是否可以使用ServiceStack.Redis和get event on delete操作利用此Redis功能 在配置文件中,我添加了以下行:Caching 用于删除操作的带有StackExchange.Redis的Redis键空间通知,caching,redis,servicestack.redis,Caching,Redis,servicestack.redis,我一直在搜索如何使用ServiceStack.Redis库在Redis上执行密钥空间通知订阅以删除密钥 通过检查git hub和其他网站上的可用测试,我发现iResubscription可以用于订阅特定的Redis key事件,对于set操作,它工作得非常好,但对于Delete操作,它不会被调用 是否可以使用ServiceStack.Redis和get event on delete操作利用此Redis功能 在配置文件中,我添加了以下行: notify-keyspace-events KEAg
notify-keyspace-events KEAg
我正在使用以下代码
var channels = new[] { "__keyevent@0__:set" , "__keyevent@0__:del" };
using (var redisConsumer = new RedisClient("localhost:6379"))
using (var subscription = redisConsumer.CreateSubscription()) {
subscription.OnMessage = onKeyChange;
subscription.SubscribeToChannelsMatching(channels );
}
从表面上看,你得到的东西应该有用 尝试将
notify keyspace events
设置为AKE
,g
是冗余的,如中所述:
g$lshztxe的别名,因此“AKE”字符串表示所有
事件
尝试使用SubscribeToChannels
而不是SubscribeToChannelsMatching
。后者用于模式订阅
您可以使用PUBSUB NUMSUB测试您有多少订阅者__keyevent@0__:del
来自redis cli的命令
尝试使用SUBSCRIBE测试正在触发的事件__keyevent@0__:del
来自redis cli。这将帮助您确定问题是在redis服务器上还是在应用程序代码上
如果您在尝试上述操作后无法使问题生效,请使用结果更新问题。从表面上看,您得到的似乎应该生效 尝试将
notify keyspace events
设置为AKE
,g
是冗余的,如中所述:
g$lshztxe的别名,因此“AKE”字符串表示所有
事件
尝试使用SubscribeToChannels
而不是SubscribeToChannelsMatching
。后者用于模式订阅
您可以使用PUBSUB NUMSUB测试您有多少订阅者__keyevent@0__:del
来自redis cli的命令
尝试使用SUBSCRIBE测试正在触发的事件__keyevent@0__:del
来自redis cli。这将帮助您确定问题是在redis服务器上还是在应用程序代码上
如果您在尝试上述操作后无法使问题正常运行,请使用结果更新问题。问题就是这样运行的。我不明白为什么它不适用于“g”。我从文档中了解到,g表示所有通用事件。那么这两者之间有什么区别呢?是这样的。我不明白为什么它不适用于“g”。我从文档中了解到,g表示所有通用事件。那么这两者有什么区别呢?