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. 初步理解JWT并实践使用

    原文:https://www.jianshu.com/p/2fdc20a42c41 JWT是一种用于双方之间传递安全信息的简洁的.URL安全的表述性声明规范.JWT作为一个开放的标准(RFC 7519 ...

  2. SpringBoot配置多数据源

    原文:https://www.jianshu.com/p/033e0ebeb617 项目中用到了两个数据库,分别是Oracle和Mysql,涉及到了多数据源问题,这里做下记录 官方讲解:https:/ ...

  3. ios开发怎样才能做到代码和界面彻底分离,方便换肤?

    设想一下,你现在手底下有N个开发人员,你如何让这些人参与到一个ios开发项目中来?而不是独自一个人完成.

  4. fastjson的日期格式化

    //SerializerFeature.WriteDateUseDateFormat 使用日期字段格式序列化(2017-01-01),而不是用时间戳表示日期 JSON.toJSONString(dat ...

  5. 关于Spring-Data-Jpa的一些理解

    spring data jpa介绍 首先了解JPA是什么? JPA(Java Persistence API)是Sun官方提出的Java持久化规范.它为Java开发人员提供了一种对象/关联映射工具来管 ...

  6. Log stash学习笔记(一)

    Logstash是一款开源的数据收集引擎,具备实时管道处理能力.简单来说,logstash作为数据源与数据存储分析工具之间的桥梁,结合 ElasticSearch以及Kibana,能够极大方便数据的处 ...

  7. Cannot convert type SomeClass to 'T'

    以下代码会出问题: public static T Protect<T>(Func<T> func, UserLevel pageRole) where T : ActionR ...

  8. Java反编译工具CFR,Procyon简介

    Java反编译工具有很多,个人觉得使用最方便的是jd-gui,当然jad也不错,jd-gui主要提供了图形界面,操作起来很方便,但是jd-gui很久没有更新了,java 7出来很久了,jd-gui在反 ...

  9. MECE分析法(Mutually Exclusive Collectively Exhaustive)

    什么是MECE分析法? MECE,是Mutually Exclusive Collectively Exhaustive,中文意思是“相互独立,完全穷尽”. 也就是对于一个重大的议题,能够做到不重叠. ...

  10. [转]最完美解决Nginx部署ThinkPHP项目的办法

    From : http://www.htmltec.com/archives/302 网上通用解决方法的配置如下: server { location / { index index.htm inde ...