01 |
APPEND key value |
|
功能描述:將KEY對應的VALUE值減1 返回結果:APPEND操作之後,KEY對應VALUE的最終長度 注意事項: 1)時間複雜度:O(1) 2)當KEY存在,且為STRING類型時,將會將value追加到原有值末尾; 3)如果KEY不存在,將會建立KEY/VALUE。 |
02 |
DECR key |
|
功能描述:將KEY對應的VALUE原子性的減1 返回結果:返回執行減1操作後KEY對應的VALUE值 注意事項: 1)時間複雜度:O(1) 2)如果KEY對應VALUE能轉化為數字,則執行減1操作; 3)如果KEY對應VALUE不能轉化為數字,則返回錯誤資訊; 4)該操作是原子性的。假設:當前KEY對應的VALUE值為100,當3個用戶端同時執行該操作時,最終結果將會是97。 |
03 |
INCR key |
|
功能描述:將KEY對應的VALUE原子性的加1 返回結果:返回執行加1操作後KEY對應的VALUE值 注意事項: 1)時間複雜度:O(1) 2)如果KEY對應VALUE能轉化為數字,則執行加1操作; 3)如果KEY對應VALUE不能轉化為數字,則返回錯誤資訊; 4)該操作是原子性的。假設:當前KEY對應的VALUE值為100,當3個用戶端同時執行該操作時,最終結果將會是103。 |
04
|
DECRBY key decremen |
|
功能描述:將KEY對應的VALUE原子性的減decrement 返回結果:返回執行減操作後KEY對應的VALUE值 注意事項: 1)時間複雜度:O(1) 2)如果KEY對應VALUE能轉化為數字,則執行減操作; 3)如果KEY對應VALUE不能轉化為數字,則返回錯誤資訊; 4)參數decrement不能為浮點數,只能為整數; 5)該操作是原子性的。 |
05 |
INCRBY key increment |
|
功能描述:將KEY對應的VALUE原子性的加increment 返回結果:返回執行加操作後KEY對應的VALUE值 注意事項: 1)時間複雜度:O(1) 2)如果KEY對應VALUE能轉化為數字,則執行加操作; 3)如果KEY對應VALUE不能轉化為數字,則返回錯誤資訊; 4)參數increment不能為浮點數,只能為整數; 5)該操作是原子性的。 |
06 |
INCRBYFLOAT key increment |
|
功能描述:將KEY對應的VALUE原子性的加increment 返回結果:返回執行加操作後KEY對應的VALUE值 注意事項: 1)時間複雜度:O(1) 2)如果KEY對應VALUE能轉化為數字,則執行加操作; 3)如果KEY對應VALUE不能轉化為數字,則返回錯誤資訊; 4)此命令的參數increment可以為浮點數,但是請注意此命令的計算精度; 5)暫時沒有命令DECRBYFLOAT,如果想進行浮點數的減操作,可以模仿:INCRBYFLOAT key -5.9; 6)該操作是原子性的。 |
07 |
SET key value [EX seconds] [PX milliseconds] [NX|XX] |
|
功能描述:設定KEY對應的VALUE 參數說明: 從 Redis 2.6.12 版本開始, SET 命令的行為可以通過一系列參數來修改: 1)EX second:設定鍵的到期時間為second秒 SET key value EX second 效果等同於 SETEX key second value。 2)PX millisecond:設定鍵的到期時間為millisecond毫秒 SET key value PX millisecond 效果等同於 PSETEX key millisecond value。 3)NX :只在鍵不存在時,才對鍵進行設定作業 SET key value NX 效果等同於 SETNX key value 4)XX :只在鍵已經存在時,才對鍵進行設定作業。 返回結果: 1)在2.6.12版本之前,總是返回OK; 2)在2.6.12版本開始,SET操作完成時才返回OK; 3)如果設定了 NX 或者 XX ,但因為條件沒達到而造成設定作業未執行,那麼命令返回空批量回複(NULL Bulk Reply)。 注意事項: 1)時間複雜度:O(1) 2)如果KEY已經存在,此操作將直接覆蓋舊值,且無視類型; 3)對於某個原本帶有存留時間(TTL)的鍵來說, 當 SET 命令成功在這個鍵上執行時, 這個鍵原有的 TTL 將被清除。 |
08 |
GET key |
|
功能描述:擷取指定KEY的VALUE 返回結果:指定KEY的VALUE 注意事項: 1)時間複雜度:O(1) 2)如果該KEY不存在,返回NIL; 3)如果該KEY不是String類型,將返回錯誤資訊。 |
09 |
GETSET key value |
|
功能描述:原子性的設定KEY的VALUE,同時擷取該KEY的原VALUE 返回結果:該KEY的原VALUE 注意事項: 1)時間複雜度:O(1) 2)如果該KEY不存在,將建立KEY,並返回NIL; 3)如果該KEY不是String類型,將返回錯誤資訊。 |
10 |
STRLEN key |
|
功能描述:擷取該KEY的VALUE長度 返回結果:該KEY的VALUE長度 注意事項: 1)時間複雜度:O(1) 2)如果該KEY不存在,將返回0; 3)如果該KEY不是String類型,將返回錯誤資訊。 |
11 |
SETEX key seconds value |
|
功能描述:設定KEY對應值為VALUE,同時設定該KEY的存留時間為SECONDS秒 返回結果:操作完成時才返回OK 注意事項: 1)時間複雜度:O(1) 2)如果KEY已經存在,此操作將直接覆蓋舊值; 3)該命令類似如下兩條命令: SET key value EXPIRE key seconds 不同的是,SETEX是原子性的。關聯值和設定存留時間兩個動作會在同一時間內完成,該命令在 Redis 用作緩衝時,非常實用; 4)當 seconds 參數不合法時,返回錯誤。 |
12 |
SETNX key value |
|
功能描述:當前僅當KEY不存在時,設定KEY對應值為VALUE 返回結果:設定成功返回1,設定失敗返回0 注意事項: 1)時間複雜度:O(1) 2)將 key 的值設為 value ,若且唯若 key 不存在; 3)若給定的 key 已經存在,則 SETNX 不做任何動作; 4)SETNX 是"SET if Not eXists"(如果不存在,則 SET)的簡寫。 |
13 |
SETBIT key offset value |
|
功能描述:對KEY所儲存的字串值,設定或清除指定位移量上的位(bit) 返回結果:指定位移量原來儲存的位 注意事項: 1)時間複雜度:O(1) 2)位的設定或清除取決於 value 參數,可以是 0 也可以是 1; 3)當 key 不存在時,自動產生一個新的字串值; 4)字串會進行伸展(grown)以確保它可以將 value 儲存在指定的位移量上。當字串值進行伸展時,空白位置以 0 填充; 5)offset 參數必須大於或等於 0 ,小於 2^32 (bit 映射被限制在 512 MB 之內); 6)對使用大的 offset 的SETBIT操作來說,記憶體配置可能造成 Redis 伺服器被阻塞。具體參考SETRANGE 命令,warning(警告)部分。 |
14 |
GETBIT key offset |
|
功能描述:對 key 所儲存的字串值,擷取指定位移量上的位(bit) 返回結果:指定位移量上的位 注意事項: 1)時間複雜度:O(1) 2)當 offset 比字串值的長度大,或者 key 不存在時,返回 0 ; 3)當KEY不存在時,進行GETBIT操作將返回0。 |
15 |
SETRANGE key offset value |
|
功能描述:用 value 參數覆寫(overwrite)給定 key 所儲存的字串值,從位移量 offset 開始 返回結果:修改後的字串長度 注意事項: 1)時間複雜度:對小的字串,平攤複雜度O(1)。(關於什麼字串是”小”的,請參考 APPEND 命令) 否則為O(M), M 為 value 參數的長度 2)不存在的 key,則將其原值當作空白字串處理; 3)SETRANGE 命令會確保字串足夠長以便將 value 設定在指定的位移量上,如果給定 key 原來儲存的字串長度比位移量小(比如字串只有 5 個字元長,但你設定的 offset 是 10 ),那麼原字元和位移量之間的空白將用零位元組(zerobytes, "\x00" )來填充; 4)注意你能使用的最大位移量是 2^29-1(536870911) ,因為 Redis 字串的大小被限制在 512 兆(megabytes)以內。如果你需要使用比這更大的空間,你可以使用多個 key ; 5)當產生一個很長的字串時,Redis 需要分配記憶體空間,該操作有時候可能會造成伺服器阻塞(block)。在2010年的Macbook Pro上,設定位移量為 536870911(512MB 記憶體配置)耗費約 300 毫秒, 設定位移量為 134217728(128MB 記憶體配置),耗費約 80 毫秒,設定位移量 33554432(32MB 記憶體配置),耗費約 30 毫秒,設定位移量為 8388608(8MB 記憶體配置),耗費約 8 毫秒。 注意若首次記憶體配置成功之後,再對同一個 key 調用 SETRANGE 操作,無須再重新記憶體。 |
16 |
GETRANGE key start end |
|
功能描述:截取 key 對應字串值的子串 返回結果:截取得出的子串 注意事項: 1)時間複雜度:O(N)(N表示要返回的字串長度) 2)字串的截取範圍由 start 和 end 兩個位移量決定(包括 start 和 end 在內); 3)負數位移量表示從字串最後開始計數, -1 表示最後一個字元, -2 表示倒數第二個,以此類推; 4)GETRANGE 通過保證子字串的值域(range)不超過實際字串的值域來處理超出範圍的值域請求; 5)在 <= 2.0 的版本裡,GETRANGE 被叫作 SUBSTR。 |
17 |
MSET key value [key value ...] |
|
功能描述:同時設定1個或多個KEY-VALUE對 返回結果:總是返回 OK (因為 MSET 不可能失敗) 注意事項: 1)時間複雜度:O(N)(N表示 key-value對的數量) 2)如果某個給定 key 已經存在,那麼 MSET 會用新值覆蓋原來的舊值,如果這不是你所希望的效果,請考慮使用 MSETNX 命令:它只會在所有給定 key 都不存在的情況下進行設定作業; 3)MSET 是一個原子性(atomic)操作,所有給定 key 都會在同一時間內被設定,某些給定 key 被更新而另一些給定 key 沒有改變的情況,不可能發生。 |
18 |
MSETNX key value [key value ...] |
|
功能描述:同時設定一個或多個 key-value 對,若且唯若所有給定 key 都不存在 返回結果:成功返回1,失敗返回0 注意事項: 1)時間複雜度:O(N)(N表示 key-value對的數量) 2)即使只有一個給定 key 已存在, MSETNX 也會拒絕執行所有給定 key 的設定作業; 3)MSETNX 是原子性的,因此它可以用作設定多個不同 key 表示不同欄位(field)的唯一性邏輯對象(unique logic object),所有欄位要麼全被設定,要麼全不被設定。 |
19 |
MGET key [key ...] |
|
功能描述:返回所有(一個或多個)給定 key 的值 返回結果:一個包含所有給定 key 的值的列表 注意事項: 1)時間複雜度:O(N)(N表示 key-value對的數量) 2)如果給定的 key 裡面,有某個 key 不存在,那麼這個 key 返回特殊值 nil 。因此,該命令永不失敗。 |