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过期通知。的更多相关文章

  1. C# Cache 设定缓存过期时间方法 绝对过期时间 和 相对过期时间(即:访问激活后不过期)

    摘自: http://www.cnblogs.com/zj1111184556/p/3493840.html 1. 设定绝对过期时间 /// <summary> /// 设定绝对的过期时间 ...

  2. redis入门指南(三)—— 事务、过期时间、SORT命令、消息通知与管道

    写在前面 学习<redis入门指南>笔记,结合实践,只记录重要,明确,属于新知的相关内容. 事务 1.redis中的事务由一组命令的集合组成,要么都执行,要么都不执行,同时redis的事务 ...

  3. (Oracle)数据库用户的密码过期时间如何修改为永不过期

    Oracle的密码过期规则是用Profile来管理的,系统默认只有一个Profile(DEFAULT),该profile的密码过期规则为180天.那么如何修改Oracle数据库用户的密码过期时间为永不 ...

  4. Manifest中meta-data扩展元素数据的配置与获取

    简介-meta是什么 在AndroidManifest.xml清单文件中 我们有时会看到如下类似的<meta-data ... >元素开始的配置内容: <meta-data andr ...

  5. 在Redis中设置了过期时间的Key,需要注意哪些问题?

    熟悉Redis的同学应该知道,Redis的每个Key都可以设置一个过期时间,当达到过期时间的时候,这个key就会被自动删除. 在为key设置过期时间需要注意的事项 1. DEL/SET/GETSET等 ...

  6. 超大批量删除redis中无用key+配置

    目前线上一个单实例redis中无用的key太多,决定删除一部分. 1.删除指定用户的key,使用redis的pipeline 根据一定条件把需要删除的用户统计出来,放到一个表里面,表为 del_use ...

  7. redis学习(五) redis过期时间

    redis过期时间 1.redis过期时间介绍 有时候我们并不希望redis的key一直存在.例如缓存,验证码等数据,我们希望它们能在一定时间内自动的被销毁.redis提供了一些命令,能够让我们对ke ...

  8. Redis 中的过期元素是如何被处理的?视频+图文版给你答案——面试突击 002 期

    本文以面试问题「Redis 中的过期元素是如何被处理的?」为切入点,用视频加图文的方式和大家聊聊 Redis 过期元素被处理的相关知识点. 涉及的知识点 过期删除策略有哪些? 这些过期策略有哪些优缺点 ...

  9. 代码实测:给redis中的key取一个正确的名字多么重要

    redis对写入的key长度有限制吗? 太长的key对性能有影响吗? key越长对性能影响越大? 如何评估键长度对性能的影响? talk is cheap, show me the code! 今天我 ...

随机推荐

  1. iPhone上将短信内容发送到指定邮箱的方法

    iPhone上将短信内容发送到指定邮箱的方法 迄今为止,移动应用安全基本聚焦在以下几个方面,一是移动设备管理BYOD(bring your own device),二是移动恶意软件分析,三是移动设备用 ...

  2. C#编程(二十六)----------泛型

    泛型 有了泛型,就可以创建独立于被包含类型的类和方法了.我们不必给不同的类型编写功能相同的许多方法或类,只创建一个方法或类即可. 另一个减少代码的选项是使用object类,但object类不是类型安全 ...

  3. WordPress主题开发实例:根据不同分类使用不同模板

    分类实现效果: 点击"产品"相关分类,显示 否则显示 创建文件: category.php cat-news.php cat-product.php 由于点击分类时wordpres ...

  4. java collection.frequency方法

    collection.frequency方法,可以统计出某个对象在collection中出现的次数 比如: frequency(Collection<?> c, Object o)     ...

  5. 在 Spring 4.3.9下升级 Velocity 1.7.x to Velocity 2.0.x 出现的问题

    1: Spring 的  spring-context-support 报错 java.lang.NoClassDefFoundError: org/apache/velocity/runtime/l ...

  6. Eclipse启动时提示Fail to create the Java Virtual Machine的解决方法

    这个错误是Eclipse里面的一个bug,我们通过如下的设置就可以解决它. 打开eclipse安装目录下的eclipse.ini文件: 将其中的256m改为128m,512m改为256m,1024m改 ...

  7. 离线环境下使用二进制方式安装配置Kubernetes集群

    本文环境 Redhat Linux 7.3,操作系统采用的最小安装方式. Kubernetes的版本为 V1.10. Docker版本为18.03.1-ce. etcd 版本为 V3.3.8. 1. ...

  8. 【转】memcached分布式部署

    FROM : http://www.tuicool.com/articles/777nE3j memcache和memcached两者使用起来几乎一模一样. $mem = new Memcache; ...

  9. protobuf 嵌套示例

    1.嵌套 Message message Person { required string name = 1; required int32 id = 2;        // Unique ID n ...

  10. 网关局域网通信协议V2.0

    http://docs.opencloud.aqara.cn/development/gateway-LAN-communication/ https://github.com/aqara/openc ...