redis定時過期,清除

2021-10-21 02:42:38 字數 527 閱讀 3332

我這裡用的是redistemplate控制的redis

可以發現他的put方法 除了key和value 還會放乙個引數進去,就是他的失效時間

redistemplate.opsforvalue().set(key, value, seconds, timeunit.seconds);
只要往redis存值的時候,(指定當天失效時間 - system.currenttimemillis() )/1000就會得到具體秒數

下面這個類用來獲取指定時間的毫秒數

// an highlighted block

/*** 獲取特定時間的 毫秒數

*/public static long getmiol()

接下來在put方法把獲取失效秒數加入進去就好了

// an highlighted block

public void puttime(string key, string value)

清除Redis中未設定過期時間的key

線上redis有一些歷史遺留的未設定過期時間的key,導致redis空間占用較多,dba告警後要我們自己清除,於是我寫了乙個指令碼在不影響線上服務的情況下清除 使用keys命令會導致請求hang住 import sys import redis import os pool redis.connec...

redis過期策略

1 noeviction 一旦記憶體滿則返回錯誤 2 allkeys lru 對所有的key進行lru 3 volatile lru 只對設定了過期的key進行lru 預設的方式 4 allkeys random 隨機剔除乙個key 5 volatile random 對設定過期的key進行隨機剔除...

redis過期時間

在redis中,可以給乙個鍵設定過期時間,等時間到了以後,該鍵會被自動刪除。這個機制經常被用來儲存驗證碼等有一定時效性的東西,資料的有效期過了以後,就會被自動刪除以節省記憶體空間。跟過期相關的命令有三個,分別是expire persist和ttl,用法如下 來看個簡單的例子 0.1 6379 set...