上次开发用了redis后效果不错,后来在进阶的开发中查询到,如果redis一直不释放也会占用内存,于是就想着给redis加上个过期时间。
具体操作很简单,只要在设置redis的时候加上exp就可以了,时间长短可以自己定。
1 public static void SetRedisTable(string key, DataTable dt, TimeSpan? exp = null) 2 { 3 if (dt != null && !string.IsNullOrEmpty(key)) 4 { 5 string value = JsonHelper.ToJson(dt); 6 if (exp == null) 7 exp = new TimeSpan(864000000000); 8 RedisClient.Db.StringSetAsync(key, value, expiry: exp); 9 } 10 }
注意这个exp的时间,之前以为是以毫秒计算,所以设置一天过期的话只写了86400000,然而,他这里的最小单位似乎是。。100ns。。也就是1个ticks=100毫微秒=100纳秒。
所以应该写成864000000000表示一天。
恩,顺便补了一下时间方面的知识。。
1秒=1000毫秒(ms) 1毫秒=1/1,000秒(s) 1秒=1,000,000 微秒(μs) 1微秒=1/1,000,000秒(s) 1秒=1,000,000,000 纳秒(ns) 1纳秒=1/1,000,000,000秒(s) 1秒=1,000,000,000,000 皮秒(ps) 1皮秒=1/1,000,000,000,000秒(s)
C#中时间的Ticks属性
是一个很大的长整数,单位是 100 毫微秒。表示自 0001 年 1 月 1 日午夜 12:00:00 以来已经过的时间的以 100 毫微秒为间隔的间隔数。
1 毫秒 = 10^-3 秒,
1 微秒 = 10^-6 秒,
1 毫微秒 = 10^-9 秒,
100 毫微秒 = 10^-7 秒。