首页 > 代码库 > Auzre微软云Redis后台StackExchange.Redis使用KeySpaceNotification实现缓存过期前操作/处理一些事件

Auzre微软云Redis后台StackExchange.Redis使用KeySpaceNotification实现缓存过期前操作/处理一些事件

https://github.com/rustd/RedisSamples/blob/master/HelloWorld/KeySpaceNotifications.cs

懂的可以直接看上面官方提供的demo代码就明白怎么用了

 

Auzre上面需要设置keyspace notifications with "Kxg"

 

然后在项目启动的时候订阅,比如使用的是Nancy,就在Boostrapper启动里加上订阅程序

个人示例代码:

var db = CacheManager.Connection.GetDatabase();
            var subscriber = CacheManager.Connection.GetSubscriber();
            subscriber.Subscribe("__keyspace@0__:*", async (channel, value) =>
            {
                if (value.Equals("expired"))
                    await CacheExpire.keyExpire(channel);
            });

这里我只做了缓存过期的处理,所以只判断了expired

CacheExpire.keyExpire(channel)里面,将channel传过去,是为了得到当前过期的key,从而进行后续处理

Auzre微软云Redis后台StackExchange.Redis使用KeySpaceNotification实现缓存过期前操作/处理一些事件