一、關於KEY的部分命令:
EXISTS KEY:檢查給定 key
是否存在;
MOVE KEY DB:將當前數據庫的 key
移動到給定的數據庫 db
當中;
EXPIRE KEY + 秒鍾:為給定 key
設置生存時間,當 key
過期時(生存時間為 0
),它會被自動刪除(key *命令查看不到該記錄了);
TTL KEY :以秒為單位,返回給定 key
的剩余生存時間(TTL, time to live),當 key
不存在時,返回 -2
。 當 key
存在但沒有設置剩余生存時間時,返回 -1
。 否則,以秒為單位,返回 key
的剩余生存時間;
TYPE KEY:返回 key
所儲存的值的類型;
二、String的部分命令(單值單value):
APPEND key value :如果鍵 key
已經存在並且它的值是一個字符串, APPEND
命令將把 value
追加到鍵 key
現有值的末尾;如果 key
不存在, APPEND
就簡單地將鍵 key
的值設為 value
, 就像執行 SET key value
一樣。
STRLEN key : 返回鍵 key
儲存的字符串值的長度。命令返回字符串值的長度。當鍵 key
不存在時, 命令返回 0
。當 key
儲存的不是字符串值時, 返回一個錯誤。
GETRANGE key start end:返回鍵 key
儲存的字符串值的指定部分, 字符串的截取范圍由 start
和 end
兩個偏移量決定 (包括 start
和 end
在內)。
SETEX key seconds value: 將鍵 key
的值設置為 value
, 並將鍵 key
的生存時間設置為 seconds
秒鍾;如果鍵 key
已經存在, 那么 SETEX
命令將覆蓋已有的值。
SETNE key value :只在鍵 key
不存在的情況下, 將鍵 key
的值設置為 value
;若鍵 key
已經存在, 則 SETNX
命令不做任何動作。
MSET key value[key value......] :如果某個給定鍵已經存在, 那么 MSET
將使用新值去覆蓋舊值。MSET
是一個原子性(atomic)操作, 所有給定鍵都會在同一時間內被設置, 不會出現某些鍵被設置了但是另一些鍵沒有被設置的情況。
MGET key[key......]:返回給定的一個或多個字符串鍵的值。如果給定的字符串鍵里面, 有某個鍵不存在, 那么這個鍵的值將以特殊值 nil
表示。
MSETNX key value[key value]:當且僅當所有給定鍵都不存在時, 為所有給定鍵設置值。即使只有一個給定鍵已經存在, MSETNX
命令也會拒絕執行對所有鍵的設置操作。
三、List(單值多value):
LPUSH key value[key value......]:將一個或多個值 value
插入到列表 key
的表頭,如果有多個 value
值,那么各個 value
值按從左到右的順序依次插入到表頭: 比如說,對空列表 mylist
執行命令 LPUSH mylist a b c
,列表的值將是 c b a
,這等同於原子性地執行 LPUSH mylist a
、 LPUSH mylist b
和 LPUSH mylist c
三個命令。
RPUSH key value[key value......]:將一個或多個值 value
插入到列表 key
的表尾(最右邊)。如果有多個 value
值,那么各個 value
值按從左到右的順序依次插入到表尾:比如對一個空列表 mylist
執行 RPUSH mylist a b c
,得出的結果列表為 a b c
,等同於執行命令 RPUSH mylist a
、 RPUSH mylist b
、 RPUSH mylist c
。
LRANGE key start stop:返回列表 key
中指定區間內的元素,區間以偏移量 start
和 stop
指定。下標(index)參數 start
和 stop
都以 0
為底,也就是說,以 0
表示列表的第一個元素,以 1
表示列表的第二個元素,以此類推。你也可以使用負數下標,以 -1
表示列表的最后一個元素, -2
表示列表的倒數第二個元素,以此類推。
LPOP list:移除並返回列表 list的頭元素。
RPOP list:移除並返回列表 key
的尾元素。
LINDEX key:返回列表 key
中,下標為 index
的元素。下標(index)參數 start
和 stop
都以 0
為底,也就是說,以 0
表示列表的第一個元素,以 1
表示列表的第二個元素,以此類推。你也可以使用負數下標,以 -1
表示列表的最后一個元素, -2
表示列表的倒數第二個元素,以此類推。如果 key
不是列表類型,返回一個錯誤。
LLEN key:返回列表 key
的長度。如果 key
不存在,則 key
被解釋為一個空列表,返回 0
.如果 key
不是列表類型,返回一個錯誤。
LREM key count value:根據參數 count
的值,移除列表中與參數 value
相等的元素。count
的值可以是以下幾種:
count > 0
: 從表頭開始向表尾搜索,移除與value
相等的元素,數量為count
。count < 0
: 從表尾開始向表頭搜索,移除與value
相等的元素,數量為count
的絕對值。count = 0
: 移除表中所有與value
相等的值。
LTRIM key start stop:對一個列表進行修剪(trim),就是說,讓列表只保留指定區間內的元素,不在指定區間之內的元素都將被刪除。舉個例子,執行命令 LTRIM list 0 2
,表示只保留列表 list
的前三個元素,其余元素全部刪除。下標(index)參數 start
和 stop
都以 0
為底,也就是說,以 0
表示列表的第一個元素,以 1
表示列表的第二個元素,以此類推。你也可以使用負數下標,以 -1
表示列表的最后一個元素, -2
表示列表的倒數第二個元素,以此類推。當 key
不是列表類型時,返回一個錯誤。
RPOPLPUSH source destinction:命令 RPOPLPUSH 在一個原子時間內,執行以下兩個動作:
- 將列表
source
中的最后一個元素(尾元素)彈出,並返回給客戶端。 - 將
source
彈出的元素插入到列表destination
,作為destination
列表的的頭元素。
舉個例子,你有兩個列表 source
和 destination
, source
列表有元素 a, b, c
, destination
列表有元素 x, y, z
,執行 RPOPLPUSH source destination
之后, source
列表包含元素 a, b
, destination
列表包含元素 c, x, y, z
,並且元素 c
會被返回給客戶端。如果 source
不存在,值 nil
被返回,並且不執行其他動作。如果 source
和 destination
相同,則列表中的表尾元素被移動到表頭,並返回該元素,可以把這種特殊情況視作列表的旋轉(rotation)操作。
LSET key index value:將列表 key
下標為 index
的元素的值設置為 value
。當 index
參數超出范圍,或對一個空列表( key
不存在)進行 LSET 時,返回一個錯誤。
LINSERT key before|after poive value:將值 value
插入到列表 key
當中,位於值 pivot
之前或之后。當 pivot
不存在於列表 key
時,不執行任何操作。當 key
不存在時, key
被視為空列表,不執行任何操作。如果 key
不是列表類型,返回一個錯誤。
四、set(不允許出現重復的元素):
SADD key member[member......]: 將一個或多個 member
元素加入到集合 key
當中,已經存在於集合的 member
元素將被忽略。假如 key
不存在,則創建一個只包含 member
元素作成員的集合。
SMEMBERS key:返回集合 key
中的所有成員。不存在的 key
被視為空集合。
SISMEMBER key member:判斷 member
元素是否集合 key
的成員。
SCARD key:返回集合 key
的基數(集合中元素的數量)。
SREM key member[member]: 移除集合 key
中的一個或多個 member
元素,不存在的 member
元素會被忽略。
SRANDMEMBER key[count]:如果命令執行時,只提供了 key
參數,那么返回集合中的一個隨機元素。
- 如果
count
為正數,且小於集合基數,那么命令返回一個包含count
個元素的數組,數組中的元素各不相同。如果count
大於等於集合基數,那么返回整個集合。 - 如果
count
為負數,那么命令返回一個數組,數組中的元素可能會重復出現多次,而數組的長度為count
的絕對值。
SPOP key:移除並返回集合中的一個隨機元素。
SMOVE source destinction member:將 member
元素從 source
集合移動到 destination
集合。SMOVE 是原子性操作。如果 source
集合不存在或不包含指定的 member
元素,則 SMOVE 命令不執行任何操作,僅返回 0
。否則, member
元素從 source
集合中被移除,並添加到 destination
集合中去。當 destination
集合已經包含 member
元素時, SMOVE 命令只是簡單地將 source
集合中的 member
元素刪除。
SDIFF key[key......]:返回一個集合的全部成員,該集合是所有給定集合之間的差集。
SINTER key[key......]:返回一個集合的全部成員,該集合是所有給定集合的交集。
SUNION key[key......]:返回一個集合的全部成員,該集合是所有給定集合的並集。