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();
db.HashSetAsync("student1", new StackExchange.Redis.HashEntry[] {
new StackExchange.Redis.HashEntry("name", "song"),
new StackExchange.Redis.HashEntry("age", ),
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", ),
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(, "*");
foreach (var item in keys)
{
keyList.Add((string)item);
}
}
var db = mutlti.GetDatabase();
mutlti.Close(true);
throw new Exception(string.Join(",", keyList));
}
[TestMethod]
public void TestGetTime()
{
var mutlti = StackExchange.Redis.ConnectionMultiplexer.Connect(connection);
var db = mutlti.GetDatabase();
var server = mutlti.GetServer(mutlti.GetEndPoints()[]);
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().ToString("yyyy-MM-dd HH:mm:ss"));
}
[TestMethod]
public void TestSetTime()
{
var mutlti = StackExchange.Redis.ConnectionMultiplexer.Connect(connection);
var db = mutlti.GetDatabase();
db.KeyExpire("student2", DateTime.Now.AddHours());
}
[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();
}
});
tsk.Wait();
}
Redis中取得所有Key、过期时间配置与获取、Key过期通知。的更多相关文章
- C# Cache 设定缓存过期时间方法 绝对过期时间 和 相对过期时间(即:访问激活后不过期)
摘自: http://www.cnblogs.com/zj1111184556/p/3493840.html 1. 设定绝对过期时间 /// <summary> /// 设定绝对的过期时间 ...
- redis入门指南(三)—— 事务、过期时间、SORT命令、消息通知与管道
写在前面 学习<redis入门指南>笔记,结合实践,只记录重要,明确,属于新知的相关内容. 事务 1.redis中的事务由一组命令的集合组成,要么都执行,要么都不执行,同时redis的事务 ...
- (Oracle)数据库用户的密码过期时间如何修改为永不过期
Oracle的密码过期规则是用Profile来管理的,系统默认只有一个Profile(DEFAULT),该profile的密码过期规则为180天.那么如何修改Oracle数据库用户的密码过期时间为永不 ...
- Manifest中meta-data扩展元素数据的配置与获取
简介-meta是什么 在AndroidManifest.xml清单文件中 我们有时会看到如下类似的<meta-data ... >元素开始的配置内容: <meta-data andr ...
- 在Redis中设置了过期时间的Key,需要注意哪些问题?
熟悉Redis的同学应该知道,Redis的每个Key都可以设置一个过期时间,当达到过期时间的时候,这个key就会被自动删除. 在为key设置过期时间需要注意的事项 1. DEL/SET/GETSET等 ...
- 超大批量删除redis中无用key+配置
目前线上一个单实例redis中无用的key太多,决定删除一部分. 1.删除指定用户的key,使用redis的pipeline 根据一定条件把需要删除的用户统计出来,放到一个表里面,表为 del_use ...
- redis学习(五) redis过期时间
redis过期时间 1.redis过期时间介绍 有时候我们并不希望redis的key一直存在.例如缓存,验证码等数据,我们希望它们能在一定时间内自动的被销毁.redis提供了一些命令,能够让我们对ke ...
- Redis 中的过期元素是如何被处理的?视频+图文版给你答案——面试突击 002 期
本文以面试问题「Redis 中的过期元素是如何被处理的?」为切入点,用视频加图文的方式和大家聊聊 Redis 过期元素被处理的相关知识点. 涉及的知识点 过期删除策略有哪些? 这些过期策略有哪些优缺点 ...
- 代码实测:给redis中的key取一个正确的名字多么重要
redis对写入的key长度有限制吗? 太长的key对性能有影响吗? key越长对性能影响越大? 如何评估键长度对性能的影响? talk is cheap, show me the code! 今天我 ...
随机推荐
- ASIHttpRequest release 包无法发出请求
ASIHttpRequest 在 Release 模式下,Optimize 后会导致发不出请求. 解决方案: 去掉这两个文件的 Optimization:ASIFormDataRequest.m AS ...
- C#编程(七十四)----------释放非托管资源
释放非托管资源 在介绍释放非托管资源的时候,我觉得有必要先来认识一下啥叫非托管资源,既然有非托管资源,肯定有托管资源. 托管资源指的是.net可以自棕进行回收的资源,主要是指托管堆上分配的内存资源.托 ...
- C#编程(六十二)---------LINQ标准的查询操作符
LINQ标准的查询操作符 首先我们来看一下LINQ的操作符,可根据查询操作符的操作”类型”进行分类,如把它们分成投影,限制,排序,联接,分组,串联,聚合,集合,生成,转换,元素,相等,量词,分割等. ...
- 【mysql】sum处理null的结果
SELECT IFNULL() createSCNum, IFNULL() privateScNum FROM security_code_config WHERE tid = 'test_tenem ...
- ArrayList 排序方法的性能对比
20000=>ZXP 二分法 getSeriesMinSort2(list) Time is 67000 20000=>循环 getSeriesMinSortFor(list) Time ...
- 探讨一下Java单例设计模式
所谓单例模式,简单来说,就是在整个应用中保证只有一个类的实例存在.就像是Java Web中的application,也就是提供了一个全局变量,用处相当广泛,比如保存全局数据,实现全局性的操作等. 1. ...
- JS判断图片加载完成方法
javascipt原生方法 选取指定ID的图片,通过onload指定回调方法,在图片加载完成后弹出“图片加载已完成”字样提示. <img id="pic1" src=&quo ...
- python的rsa公钥解密方法
示例: # -*- coding: UTF- -*- import M2Crypto import base64 #私钥加密,公钥解密 def pri_encrypt(msg, file_name): ...
- Java NIO Test Case
package org.zwl.test.nio; import java.io.IOException; import java.net.InetSocketAddress; import java ...
- 修改VIM恶心的注释自动格式化
我复制一段代码,里面有// 只有一行,但是复制到vim中就下面全部都有//了.我要取消这个功能 vim ~/.vimrc set nu! "set formatoptions=croql 这 ...