memcached 和 redis 的set命令都有expire引數,可以設定key的過期時間。但是redis是乙個可以對資料持久化的key-value database,它的key過期策略還是和memcached有所不同的。梳理,整理如下:
redis通過expire命令來設定key的過期時間。
語法:redis.expire(key, expiration)
1.在小於2.1.3的redis版本裡,只能對key設定一次expire。redis2.1.3和之後的版本裡,可以多次對key使用expire命令,更新key的expire time。
2. redis術語裡面,把設定了expire time的key 叫做:volatile keys。 意思就是不穩定的key。
3. 如果對key使用set或del命令,那麼也會移除expire time。尤其是set命令,這個在編寫程式的時候需要注意一下。
4. redis2.1.3之前的老版本裡,如果對volatile keys 做相關寫入操作(lpush,lset),和其他一些觸發修改value的操作時,redis會刪除 該key。 也就是說 :
redis.expire(key,expiration);
redis.lpush(key,field,value);
redis.get(key) //return null
redis2.1.3之後的版本裡面沒有這個約束,可以任意修改。
redis.set(key,100);
redis.expire(key,expiration);
redis.incr(key)
redis.get(key)
return 101; redis<2.1.3 return 1;
5. redis對過期鍵採用了lazy expiration:在訪問key的時候判定key是否過期,如果過期,則進行過期處理。其次,每秒對volatile keys 進行抽樣測試,如果有過期鍵,那麼對所有過期key進行處理。
redis 下key的過期時間詳解 expire
memcached 和 redis 的set命令都有expire引數,可以設定key的過期時間。但是redis是乙個可以對資料持久化的key value database,它的key過期策略還是和memcached有所不同的。梳理,整理如下 redis通過expire命令來設定key的過期時間。語法...
Redis設定和更新Key的過期時間
為給定key設定生存時間,當key過期時 生存時間為0 它會被自動刪除。在 redis 中,帶有生存時間的key被稱為 易失的 volatile 生存時間可以通過使用 del 命令來刪除整個key來移除,或者被 set 和 getset 命令覆寫 overwrite 這意味著,如果乙個命令只是修改 ...
redis過期key監聽
修改配置檔案 redis.conf notify keyspace events ex k 鍵空間通知,以 keyspace 為字首 e 鍵事件通知,以 keysevent 為字首 g del expipre rename 等型別無關的通用命令的通知,string命令 l list命令 s set命...