Redis中set、setnx、setex的使用區(qū)別及說明
更新時間:2025年11月05日 14:14:49 作者:夢想不會滅
本文介紹了Redis中的SET、SETEX、SETNX和GETSET命令,分別用于設置鍵值對、設置帶過期時間的鍵值對、僅當鍵不存在時設置鍵值對以及獲取并設置鍵值對,同時,還提到了expire和persist命令用于設置和清除鍵的過期時間
1、SET
SET key value
含義:
- 將字符串值 value 關(guān)聯(lián)到 key 。
- 如果 key 已經(jīng)持有其他值, SET 就覆寫舊值,無視類型。
2、SETEX
SETEX key seconds value
含義:
- 將值 value 關(guān)聯(lián)到 key ,并將 key 的生存時間設為 seconds (以秒為單位)。
- 如果 key 已經(jīng)存在, SETEX 命令將覆寫舊值。
返回值:
- 設置成功時返回 OK 。
- 當 seconds 參數(shù)不合法時,返回一個錯誤。
3、SETNX
SETNX key value
含義:
- 將 key 的值設為 value ,當且僅當 key 不存在。
- 若給定的 key 已經(jīng)存在,則 SETNX 不做任何動作。
- SETNX 是『SET if Not eXists』(如果不存在,則 SET)的簡寫。
返回值:
- 設置成功,返回 1 。
- 設置失敗,返回 0 。
4、GETSET
GETSET key value
含義:
- 將給定 key 的值設為 value ,并返回 key 的舊值(old value)。
- 當 key 存在但不是字符串類型時,返回一個錯誤。
返回值:
- 返回給定 key 的舊值。
- 當 key 沒有舊值時,也即是, key 不存在時,返回 null 。
備注:
1、expire命令可以設置超時,讓現(xiàn)有的key獲得超時時間
Expire KEY_NAME TIME_IN_SECONDS
2、persist命令可以清除超時,讓key變成一個永久的key
PERSIST KEY_NAME
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Redis集群下過期key監(jiān)聽的實現(xiàn)代碼
這篇文章主要介紹了Redis集群下過期key監(jiān)聽的實現(xiàn)代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-09-09

