Redis資料型別及常用的操作命令——String操作
阿新 • • 發佈:2019-01-13
可以通過該網站檢視更多redis命令及資訊:http://redisdoc.com/
set k v:
當set k1 v1後再次set k1 v2,則會覆蓋上一次的值;
get key:
獲取key的value;
del key:
刪除當前key;
APPEND key value:
如果 key 已經存在並且是一個字串, APPEND 命令將 value 追加到 key 原來的值的末尾。返回值為append後的字串長度。
如果 key 不存在, APPEND 就簡單地將給定 key 設為 value ,就像執行 SET key value 一樣。返回值為append後的字串長度
STRLEN key:
返回 key 所儲存的字串值的長度。
當 key 儲存的不是字串值時,返回一個錯誤。
INCR key:
將 key 中儲存的數字值增一。
如果 key 不存在,那麼 key 的值會先被初始化為 0 ,然後再執行 INCR 操作。
如果值包含錯誤的型別,或字串型別的值不能表示為數字,那麼返回一個錯誤。
本操作的值限制在 64 位(bit)有符號數字表示之內。
這是一個針對字串的操作,因為 Redis 沒有專用的整數型別,所以 key 內儲存的字串被解釋為十進位制 64 位有符號整數來執行 INCR 操作。
INCRBY key increment:
將 key 所儲存的值加上增量 increment 。
如果 key 不存在,那麼 key 的值會先被初始化為 0 ,然後再執行 INCRBY 命令。
如果值包含錯誤的型別,或字串型別的值不能表示為數字,那麼返回一個錯誤。
本操作的值限制在 64 位(bit)有符號數字表示之內。
DECR key
將 key 中儲存的數字值減一。
如果 key 不存在,那麼 key 的值會先被初始化為 0 ,然後再執行 DECR 操作。
如果值包含錯誤的型別,或字串型別的值不能表示為數字,那麼返回一個錯誤。
本操作的值限制在 64 位(bit)有符號數字表示之內。
DECRBY key decrement
將 key 所儲存的值減去減量 decrement 。
如果 key 不存在,那麼 key 的值會先被初始化為 0 ,然後再執行 DECRBY 操作。
如果值包含錯誤的型別,或字串型別的值不能表示為數字,那麼返回一個錯誤。
本操作的值限制在 64 位(bit)有符號數字表示之內。
SETRANGE key offset value
用 value 引數覆寫(overwrite)給定 key 所儲存的字串值,從偏移量 offset 開始。
不存在的 key 當作空白字串處理。
SETRANGE 命令會確保字串足夠長以便將 value 設定在指定的偏移量上,如果給定 key 原來儲存的字串長度比偏移量小(比如字串只有 5 個字元長,但你設定的 offset 是 10 ),那麼原字元和偏移量之間的空白將用零位元組(zerobytes, “\x00” )來填充。
注意你能使用的最大偏移量是 2^29-1(536870911) ,因為 Redis 字串的大小被限制在 512 兆(megabytes)以內。如果你需要使用比這更大的空間,你可以使用多個 key 。
當生成一個很長的字串時,Redis 需要分配記憶體空間,該操作有時候可能會造成伺服器阻塞(block)。在2010年的Macbook Pro上,設定偏移量為 536870911(512MB 記憶體分配),耗費約 300 毫秒, 設定偏移量為 134217728(128MB 記憶體分配),耗費約 80 毫秒,設定偏移量 33554432(32MB 記憶體分配),耗費約 30 毫秒,設定偏移量為 8388608(8MB 記憶體分配),耗費約 8 毫秒。 注意若首次記憶體分配成功之後,再對同一個 key 呼叫 SETRANGE 操作,無須再重新記憶體。
GETRANGE key start end
返回 key 中字串值的子字串,字串的擷取範圍由 start 和 end 兩個偏移量決定(包括 start 和 end 在內)。
負數偏移量表示從字串最後開始計數, -1 表示最後一個字元, -2 表示倒數第二個,以此類推。
GETRANGE 通過保證子字串的值域(range)不超過實際字串的值域來處理超出範圍的值域請求。
SETEX key seconds value
將值 value 關聯到 key ,並將 key 的生存時間設為 seconds (以秒為單位)。
如果 key 已經存在, SETEX 命令將覆寫舊值。
這個命令類似於以下兩個命令:
SET key value
EXPIRE key seconds # 設定生存時間
不同之處是, SETEX 是一個原子性(atomic)操作,關聯值和設定生存時間兩個動作會在同一時間內完成,該命令在 Redis 用作快取時,非常實用。
SETNX key value
將 key 的值設為 value ,當且僅當 key 不存在。
若給定的 key 已經存在,則 SETNX 不做任何動作。
SETNX 是『SET if Not eXists』(如果不存在,則 SET)的簡寫。
返回值:
設定成功,返回 1 。
設定失敗,返回 0 。
MSET key value [key value …]
同時設定一個或多個 key-value 對。
如果某個給定 key 已經存在,那麼 MSET 會用新值覆蓋原來的舊值,如果這不是你所希望的效果,請考慮使用 MSETNX 命令:它只會在所有給定 key 都不存在的情況下進行設定操作。
MSET 是一個原子性(atomic)操作,所有給定 key 都會在同一時間內被設定,某些給定 key 被更新而另一些給定 key 沒有改變的情況,不可能發生。
返回值:
總是返回 OK (因為 MSET 不可能失敗)
MGET key [key …]
返回所有(一個或多個)給定 key 的值。
如果給定的 key 裡面,有某個 key 不存在,那麼這個 key 返回特殊值 nil 。因此,該命令永不失敗。
返回值:
一個包含所有給定 key 的值的列表。
MSETNX key value [key value …]
同時設定一個或多個 key-value 對,當且僅當所有給定 key 都不存在。
即使只有一個給定 key 已存在, MSETNX 也會拒絕執行所有給定 key 的設定操作。
MSETNX 是原子性的,因此它可以用作設定多個不同 key 表示不同欄位(field)的唯一性邏輯物件(unique logic object),所有欄位要麼全被設定,要麼全不被設定。
返回值:
當所有 key 都成功設定,返回 1 。
如果所有給定 key 都設定失敗(至少有一個 key 已經存在),那麼返回 0 。