Redis設(shè)置過期時(shí)間的實(shí)現(xiàn)示例
在使用redis作為緩存存儲(chǔ)值的時(shí)候,一般都是需要設(shè)置值的過期時(shí)間,否則日積月累的垃圾數(shù)據(jù)就會(huì)占用大量的內(nèi)存空間;
設(shè)置過期時(shí)間可以分開設(shè)置也可以一條語(yǔ)句設(shè)置
分開設(shè)置
先設(shè)置值再設(shè)置過期時(shí)間,這種方式極端情況下會(huì)出現(xiàn)問題,畢竟是非原子操作。
// 兩條命令分別設(shè)置值和過期時(shí)間 // 時(shí)間單位:秒 redis.expire("key",6); // 時(shí)間單位:毫秒 //redis.pexpire("key",6000L);
合并設(shè)置
一條命令同時(shí)設(shè)置值和過期時(shí)間,推薦使用此方式。
// 一條語(yǔ)句設(shè)置值和過期時(shí)間 // 時(shí)間單位:秒 redis.setex("key",6,"value"); // 時(shí)間單位:毫秒 //redis.psetex("key",6000L,"value");
一般主要包括2種處理過期方式,其中expire都是以秒為單位,pexpire都是以毫秒為單位的。
第一種
設(shè)置值的有效時(shí)間。
expire (key seconds) // 為給定 key 設(shè)置過期時(shí)間,以秒計(jì)。 pexpire (key milliseconds) // 設(shè)置 key 的過期時(shí)間以毫秒計(jì)。 setex(String key, long seconds, String value) // 建議使用原子操作設(shè)置過期時(shí)間,而不是先設(shè)置值再設(shè)置過期時(shí)間
第二種
設(shè)置值的到期時(shí)間,根據(jù)時(shí)間的時(shí)間戳設(shè)置,例如:2021年6月1號(hào)上午10點(diǎn)10分10秒到期,就填此時(shí)刻的時(shí)間戳
// 設(shè)置 key 過期時(shí)間的時(shí)間戳(unix timestamp) 單位:秒時(shí)間戳, // 例如:2021年6月1號(hào)上午10點(diǎn)10分10秒到期 timestamp=1622513410 expireat (key timestamp) // 設(shè)置 key 過期時(shí)間的時(shí)間戳(unix timestamp) 單位:毫秒時(shí)間戳 // 例如:2021年6月1號(hào)上午10點(diǎn)10分10秒到期 timestamp=1622513410000 pexpireat (key milliseconds-timestamp)
注:更新值會(huì)清除過期時(shí)間,如果用DEL, SET, GETSET會(huì)將key對(duì)應(yīng)存儲(chǔ)的值替換成新的,命令也會(huì)清除掉超時(shí)時(shí)間;如果list結(jié)構(gòu)中添加一個(gè)數(shù)據(jù)或者改變hset數(shù)據(jù)的一個(gè)字段是不會(huì)清除超時(shí)時(shí)間的;如果想要通過set去覆蓋值那就必須重新設(shè)置expire。
到此這篇關(guān)于Redis設(shè)置過期時(shí)間的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)Redis 過期時(shí)間內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Redis的Hash類型及相關(guān)命令小結(jié)
edis Hash是一種數(shù)據(jù)結(jié)構(gòu),用于存儲(chǔ)字段和值的映射關(guān)系,本文就來介紹一下Redis的Hash類型及相關(guān)命令小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下2025-01-01基于Redis實(shí)現(xiàn)短信驗(yàn)證碼登錄功能
對(duì)于我們用戶來講,我們?cè)诘顷懸粋€(gè)APP的時(shí)候,有很多種登陸方式,比如"微信掃碼"、"手機(jī)號(hào)登陸"、"支付寶掃碼"、"賬號(hào)密碼登錄",現(xiàn)在大多都會(huì)要求微信掃碼登錄或者是手機(jī)號(hào)驗(yàn)證碼登錄,所以本文給大家介紹了基于Redis實(shí)現(xiàn)短信驗(yàn)證碼登錄功能,需要的朋友可以參考下2025-01-01redis實(shí)現(xiàn)計(jì)數(shù)器-防止刷單方法介紹
本文主要向大家介紹了redis實(shí)現(xiàn)計(jì)數(shù)器防止刷單的方法和有關(guān)代碼,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11Redis?鍵值對(duì)(key-value)數(shù)據(jù)庫(kù)實(shí)現(xiàn)方法
Redis 的鍵值對(duì)中的 key 就是字符串對(duì)象,而 value 可以是字符串對(duì)象,也可以是集合數(shù)據(jù)類型的對(duì)象,比如 List 對(duì)象,Hash 對(duì)象、Set 對(duì)象和 Zset 對(duì)象,這篇文章主要介紹了Redis?鍵值對(duì)數(shù)據(jù)庫(kù)是怎么實(shí)現(xiàn)的,需要的朋友可以參考下2024-05-05在Centos?8.0中安裝Redis服務(wù)器的教程詳解
由于考慮到linux服務(wù)器的性能,所以經(jīng)常需要把一些中間件安裝在linux服務(wù)上,今天通過本文給大家介紹下在Centos?8.0中安裝Redis服務(wù)器的詳細(xì)過程,感興趣的朋友一起看看吧2022-03-03在CentOS 7環(huán)境下安裝Redis數(shù)據(jù)庫(kù)詳解
Redis是一個(gè)開源的、基于BSD許可證的,基于內(nèi)存的、鍵值存儲(chǔ)NoSQL數(shù)據(jù)本篇文章主要介紹了在CentOS 7環(huán)境下安裝Redis數(shù)據(jù)庫(kù)詳解,有興趣的可以了解一下。2016-11-11