Redis設(shè)置過期時(shí)間的實(shí)現(xiàn)示例
在使用redis作為緩存存儲(chǔ)值的時(shí)候,一般都是需要設(shè)置值的過期時(shí)間,否則日積月累的垃圾數(shù)據(jù)就會(huì)占用大量的內(nèi)存空間;
設(shè)置過期時(shí)間可以分開設(shè)置也可以一條語句設(shè)置
分開設(shè)置
先設(shè)置值再設(shè)置過期時(shí)間,這種方式極端情況下會(huì)出現(xiàn)問題,畢竟是非原子操作。
// 兩條命令分別設(shè)置值和過期時(shí)間
// 時(shí)間單位:秒
redis.expire("key",6);
// 時(shí)間單位:毫秒
//redis.pexpire("key",6000L);合并設(shè)置
一條命令同時(shí)設(shè)置值和過期時(shí)間,推薦使用此方式。
// 一條語句設(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)文章
Linux服務(wù)器快速安裝Redis6.0步驟示例詳解
這篇文章主要為大家介紹了Linux服務(wù)器快速安裝Redis6.0步驟示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
面試分析分布式架構(gòu)Redis熱點(diǎn)key大Value解決方案
這篇文章主要為大家介紹了分布式架構(gòu)Redis熱點(diǎn)key大Value解決方案,以及在面試中如果遇到這類問題的分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-03-03
Redis如何使用zset處理排行榜和計(jì)數(shù)問題
Redis的ZSET數(shù)據(jù)結(jié)構(gòu)非常適合處理排行榜和計(jì)數(shù)問題,它可以在高并發(fā)的點(diǎn)贊業(yè)務(wù)中高效地管理點(diǎn)贊的排名,并且由于ZSET的排序特性,可以輕松實(shí)現(xiàn)根據(jù)點(diǎn)贊數(shù)實(shí)時(shí)排序的功能2025-02-02
Redis配置外網(wǎng)可訪問(redis遠(yuǎn)程連接不上)的方法
默認(rèn)情況下,當(dāng)我們?cè)诓渴鹆藃edis服務(wù)之后,redis本身默認(rèn)只允許本地訪問。Redis服務(wù)端只允許它所在服務(wù)器上的客戶端訪問,如果Redis服務(wù)端和Redis客戶端不在同一個(gè)機(jī)器上,就要進(jìn)行配置。2022-12-12
Redis實(shí)現(xiàn)UV統(tǒng)計(jì)的示例代碼
本文主要介紹了Redis實(shí)現(xiàn)UV統(tǒng)計(jì)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01
Redis定時(shí)任務(wù)原理的實(shí)現(xiàn)
本文主要是基于?redis?6.2?源碼進(jìn)行分析定時(shí)事件的數(shù)據(jù)結(jié)構(gòu)和常見操作,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
Redis入門教程_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
Redis是一款開源的、高性能的鍵-值存儲(chǔ)(key-value store)。下面通過本文大家分享Redis入門教程,感興趣的朋友參考下吧2017-08-08

