Redis的SETNX命令用于設(shè)置鍵值對,如果鍵不存在,則設(shè)置成功并返回1;如果鍵已存在,則設(shè)置失敗并返回0。然而,SETNX命令本身并不支持設(shè)置超時時間。
要實現(xiàn)帶超時的SETNX功能,可以使用Redis的SET key value EX seconds
命令。這個命令會在設(shè)置鍵值對的同時,設(shè)置一個過期時間(單位:秒),時間到達(dá)后,鍵值對會自動被刪除。
以下是使用SET key value EX seconds
命令的示例:
SET mykey myvalue EX 60
這個命令將mykey
設(shè)置為myvalue
,并設(shè)置過期時間為60秒。如果在60秒內(nèi)有其他客戶端嘗試設(shè)置相同的鍵,那么新的設(shè)置會覆蓋舊的設(shè)置,并且舊的鍵值對在過期后會自動被刪除。
需要注意的是,SET key value EX seconds
命令在設(shè)置鍵值對時,會立即返回成功或失敗的狀態(tài),而不會等待過期時間到達(dá)。因此,在使用這個命令時,需要確保在適當(dāng)?shù)臅r機檢查鍵是否已經(jīng)過期,以便進(jìn)行相應(yīng)的處理。