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("[email protected]__:*", async (channel, value) =>
            {
                if (value.Equals("expired"))
                    await CacheExpire.keyExpire(channel);
            });

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

CacheExpire.keyExpire(channel)里面,将channel传过去,是为了得到当前过期的key,从而进行后续处理
时间: 2024-10-13 02:23:07

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

Windows Auzre 微软云计算产品后台操作界面

Windows Auzre 微软云计算产品后台操作界面,试用了一段时间,后台操作相比阿里云还是不够人性化.

怎样在Redis通过StackExchange.Redis 存储集合类型List

StackExchange 是由StackOverFlow出品, 是对Redis的.NET封装,被越来越多的.NET开发者使用在项目中. 绝大部分原先使用ServiceStack的开发者逐渐都转了过来,由于SS在其新版中不再开源,并对免费版本有所限制. 实际问题 那么用.NET的开发者会发现,其根本没有对List类型的存储封装,那么要实现一个类似如下需求:假如我有一个Customer的模型. public class Customer { public string FirstName { ge

在.Net下使用redis基于StackExchange.Redis

研究了下redis在.net下的使用,因为以前在java上用redis用的是jedis操作,在.net不是很熟悉,在网站上也看了一部分的.net下redis的使用,大部分都是ServiceStack.Redis听说ServiceStack.Redis4.0版本都是收费的,这个我不是很清楚,但是我确实有项目再用ServiceStack.Redis. 这里就不讨论ServiceStack.Redis的使用今天带来的是StackExchange.Redis的封装版. 代码参考 DDD领域驱动之干货(三

Windows下Redis缓存服务器的使用 .NET StackExchange.Redis Redis Desktop Manager

Redis缓存服务器是一款key/value数据库,读110000次/s,写81000次/s,因为是内存操作所以速度飞快,常见用法是存用户token.短信验证码等 官网显示Redis本身并没有Windows版本的,微软官方开发了基于Windows的Redis服务器:MSOpenTech/redis 一.Redis服务端 首先下载Redis服务器,点击前往下载.msi版本,双击安装Redis服务端就有了,并以服务的形式随系统一起启动: 安装好Redis服务器之后第一件事就是设置密码,进入安装目录:

StackExchange.Redis通用封装类分享

前两天朋友问我,有没有使用过StackExchange.Redis,问我要个封装类,由于之前都是使用ServiceStack.Redis,由于ServiceStack.Redis v4版本后是收费版的,所以现在也很有公司都在使用StackExchange.Redis而抛弃ServiceStack.Redis了.其实个人觉得,两个驱动都不错,只是由于ServiceStack.Redis收费导致目前很多公司都是基于V3版本的使用,也有人说V3版本有很多Bug,没有维护和升级,不过至少目前我是没发现B

在.net Core中使用StackExchange.Redis 2.0

StackExchange.Redis 2.0做了大量的改进包括使用了高性能的IO库System.IO.Pipelines来提升性能以及解决Timeouts问题, 但是在.net Core2.2之前为实现布式缓存和session等引用了Microsoft.AspNetCore.DataProtection.Redis和Microsoft.Extensions.Caching.Redis ,这2个包都要求使用StackExchange.Redis.StrongName但此包已经不再升级. 如果独立

用StackExchange.Redis客户端连接阿里云Redis服务遇到的问题

阿里云推荐的Redis服务.NET客户端是ServiceStack.Redis,但ServiceStack.Redis不支持异步,不支持.NET Core,于是尝试使用StackExchange.Redis.Microsoft.Extensions.Caching.Redis用的也是StackExchange.Redis,于是直接使用Microsoft.Extensions.Caching.Redis. 测试代码如下: var options = new RedisCacheOptions {

StackExchange.Redis 官方文档(一) Basics

基本使用方法: StackExchange.Redis的核心是 StackExchange.Redis 命名空间的 ConnectionMultiplexer 类;它隐藏了多服务器的实现细节.ConnectionMultiplexer被设计成可以在多个客户端之间分享和复用.不用每次操作都创建一个对象实例.对于这种使用方式,它是足够的线程安全和完备的.以后所有的示例都会假设已经创建了一个 ConnectionMultiplexer 实例对象,并且可以存储出来以备复用.但是现在,我们需要创建一个Co

stackExchange.redis的使用

在StackExchange.Redis中最重要的对象是ConnectionMultiplexer类, 它存在于StackExchange.Redis命名空间中. 这个类隐藏了Redis服务的操作细节,ConnectionMultiplexer类做了很多东西, 在所有调用之间它被设计为共享和重用的. 不应该为每一个操作都创建一个ConnectionMultiplexer . ConnectionMultiplexer是线程安全的 , 推荐使用下面的方法. 在所有后续示例中 , 都假定你已经实例化