Redis中取得所有Key、过期时间配置与获取、Key过期通知。
2017-07-05 11:37
621 查看
string connection = "127.0.0.1:6379,password=xxxxx,connectRetry=5"; [TestMethod] public void TestSet() { var mutlti = StackExchange.Redis.ConnectionMultiplexer.Connect(connection); var db = mutlti.GetDatabase(0); db.HashSetAsync("student1", new StackExchange.Redis.HashEntry[] { new StackExchange.Redis.HashEntry("name", "song"), new StackExchange.Redis.HashEntry("age", 11), new StackExchange.Redis.HashEntry("sex", "boy") }).GetAwaiter().GetResult(); db.HashSetAsync("student2", new StackExchange.Redis.HashEntry[] { new StackExchange.Redis.HashEntry("name", "wang"), new StackExchange.Redis.HashEntry("age", 22), new StackExchange.Redis.HashEntry("sex", "girl") }).GetAwaiter().GetResult(); mutlti.Close(true); } [TestMethod] public void TestGetList() { var mutlti = StackExchange.Redis.ConnectionMultiplexer.Connect(connection); var endpoints = mutlti.GetEndPoints(); List<string> keyList = new List<string>(); foreach (var ep in endpoints) { var server = mutlti.GetServer(ep); var keys = server.Keys(0, "*"); foreach (var item in keys) { keyList.Add((string)item); } } var db = mutlti.GetDatabase(0); mutlti.Close(true); throw new Exception(string.Join(",", keyList)); } [TestMethod] public void TestGetTime() { var mutlti = StackExchange.Redis.ConnectionMultiplexer.Connect(connection); var db = mutlti.GetDatabase(0); var server = mutlti.GetServer(mutlti.GetEndPoints()[0]); var timeNow = server.Time().ToUniversalTime(); var time = db.KeyTimeToLive("student2"); var expire = time == null ? (DateTime?)null : timeNow.Add(time.Value); //返回UTC时间。 throw new Exception(expire.Value.AddHours(8).ToString("yyyy-MM-dd HH:mm:ss")); } [TestMethod] public void TestSetTime() { var mutlti = StackExchange.Redis.ConnectionMultiplexer.Connect(connection); var db = mutlti.GetDatabase(0); db.KeyExpire("student2", DateTime.Now.AddHours(2)); } [TestMethod] public void TestNotifyOnExpire() { //URL:https://docs.azure.cn/zh-cn/redis-cache/cache-configure //填一个"__keyevent@*__:expired*"试试 //如果不行的话,再改填成:"Kxg"这试试 var tsk = Task.Factory.StartNew(() => { var mutlti = StackExchange.Redis.ConnectionMultiplexer.Connect(connection); var subscriber = mutlti.GetSubscriber(); subscriber.Subscribe("__keyspace@0__:*", (channel, notificationType) => { Debug.WriteLine(channel + "|" + notificationType); }); while (true) { Thread.Sleep(1000); } }); tsk.Wait(); }
相关文章推荐
- redis 获取key 过期时间
- redis 全局命令 查看所有的键,删除键,检查键是否存在,获取过期时间,键的数据结构类型
- redis 获取key 过期时间
- redis 获取key 过期时间
- redis 全局命令 查看所有的键,删除键,检查键是否存在,获取过期时间,键的数据结构类型
- Redis主从备份以及key的过期时间配置
- Python操作Redis之设置key的过期时间
- Redis 下key的过期时间详解 :expire
- redis key 过期时间
- 获取Redis里的所有key-value对
- Redis设置Key的过期时间 – EXPIRE命令
- redis key 过期时间如何设置
- spring redis获取指定key中链表的所有数据
- redis文档翻译_key设置过期时间
- redis的key过期时间
- Redis 下key的过期时间详解
- redis文档翻译_key设置过期时间
- redis下key的过期时间详解
- Python获取Redis所有Key以及内容
- Redis设置和更新Key的过期时间