PEXPIRE
命令用于為已設(shè)置的鍵設(shè)置過期時間,單位是毫秒。當(dāng)鍵的過期時間到達(dá)時,Redis 會自動刪除該鍵。PEXPIRE
命令的生效過程如下:
當(dāng)客戶端執(zhí)行 PEXPIRE key milliseconds
命令時,Redis 會將鍵 key
的過期時間設(shè)置為 milliseconds
毫秒。
Redis 會將這個過期時間存儲在鍵的元數(shù)據(jù)中。鍵的元數(shù)據(jù)是一個包含鍵值對的數(shù)據(jù)結(jié)構(gòu),其中鍵是過期時間(以毫秒為單位)。
Redis 會啟動一個后臺定時任務(wù),用于檢查鍵的過期時間是否到達(dá)。這個定時任務(wù)的執(zhí)行頻率取決于 Redis 的配置選項 maxmemory-policy
和 maxmemory
。
當(dāng)定時任務(wù)檢查到鍵的過期時間到達(dá)時,Redis 會刪除該鍵及其對應(yīng)的值。
需要注意的是,PEXPIRE
命令設(shè)置的過期時間是相對于當(dāng)前時間的,而不是絕對時間。例如,如果 PEXPIRE key 30000
被執(zhí)行,那么鍵 key
的過期時間為 30 秒(30000 毫秒)。如果在這段時間內(nèi)鍵仍然被使用,那么它的過期時間將被重置為新的執(zhí)行 PEXPIRE
命令時的值。