上次開發用了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 秒。
