servicestack.redis,Caching,Redis,servicestack.redis" /> servicestack.redis,Caching,Redis,servicestack.redis" />

Caching 用于删除操作的带有StackExchange.Redis的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

我一直在搜索如何使用ServiceStack.Redis库在Redis上执行密钥空间通知订阅以删除密钥

通过检查git hub和其他网站上的可用测试,我发现iResubscription可以用于订阅特定的Redis key事件,对于set操作,它工作得非常好,但对于Delete操作,它不会被调用

是否可以使用ServiceStack.Redis和get event on delete操作利用此Redis功能

在配置文件中,我添加了以下行:

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表示所有通用事件。那么这两者有什么区别呢?