您好,登錄后才能下訂單哦!
這篇文章運(yùn)用簡(jiǎn)單易懂的例子給大家介紹如何設(shè)置合適的redis過(guò)期時(shí)間,代碼非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
過(guò)期時(shí)間設(shè)置
設(shè)置過(guò)期時(shí)間指的是在key上設(shè)置一個(gè)時(shí)間,使得key在這個(gè)時(shí)間之內(nèi)存活,過(guò)了這個(gè)時(shí)間,則刪除該key及其對(duì)應(yīng)的值;redis中一般設(shè)置過(guò)期時(shí)間,而非使用del命令消除元素;
一旦設(shè)置了過(guò)期時(shí)間,這個(gè)key只能被命令清除、刪除或者重寫(xiě)其內(nèi)容。這些命令包含del、set、getset以及所有的*store命令。這些命令只能改變key對(duì)應(yīng)的value的存儲(chǔ)值而不改變過(guò)期時(shí)間的設(shè)置。
如:使用incr改變key對(duì)應(yīng)的value、使用lpush添加一個(gè)新的元素到lists中、使用hset設(shè)置field對(duì)應(yīng)value的值等等,這些操作都不影響已經(jīng)對(duì)key設(shè)置的過(guò)期時(shí)間的屬性。
1.通過(guò)expire命令實(shí)現(xiàn):demo:expire key 10 ----->為給定的key設(shè)置過(guò)期時(shí)間為10秒
2.通過(guò)setex命令實(shí)現(xiàn):demo:setex key 10 value ----->設(shè)置key的值為value,存活10秒--->針對(duì)key的value為String類(lèi)型;
以上兩種方式均是針對(duì)的key,為其設(shè)置過(guò)期時(shí)間;想要對(duì)value中的某一部分?jǐn)?shù)據(jù)(其他數(shù)據(jù)類(lèi)型)進(jìn)行過(guò)期時(shí)間的設(shè)置,則需通過(guò)其他的方式進(jìn)行;
設(shè)置了過(guò)期時(shí)間的key依然可以使用persist命令重新持久化。(PERSIST命令可以移除一個(gè)鍵的過(guò)期時(shí)間)
注意:rename命令重命名key后,原始的key對(duì)應(yīng)屬性全部發(fā)生轉(zhuǎn)移。如果key設(shè)置了過(guò)期時(shí)間,并且尚未被刪除,使用rename命令重新命名后,該過(guò)期時(shí)間將轉(zhuǎn)移到新的key上。
如果調(diào)用expire或者pexpire時(shí)傳給一個(gè)負(fù)值作為參數(shù)以及expireat或者pexpireat調(diào)用的時(shí)候時(shí)間戳已經(jīng)過(guò)去,那么該key將直接被刪除而不是等待過(guò)期。
刷新過(guò)期時(shí)間
對(duì)一個(gè)設(shè)置了過(guò)期時(shí)間的key仍然可以調(diào)用expire更新其過(guò)期時(shí)間。
返回值
設(shè)置過(guò)期時(shí)間會(huì)返回一個(gè)整數(shù)值;
1)如果過(guò)期時(shí)間被設(shè)置成功,返回1;
2)如果設(shè)置失敗或者key不存在,則返回0;
關(guān)于如何設(shè)置合適的redis過(guò)期時(shí)間就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。