首页 > 代码库 > Redis中取得所有Key、过期时间配置与获取、Key过期通知。
Redis中取得所有Key、过期时间配置与获取、Key过期通知。
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、过期时间配置与获取、Key过期通知。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。