Redis常用命令(1)——Key
DEL
格式:DEL key [key ...]
作用:刪除一個或多個 key。不存在的 key 會被忽略。
返回值:被刪除 key 的數量。
示例:
192.168.1.100:6379> set testkey 1
OK
# 刪除成功返回刪除key的個數
192.168.1.100:6379> del testkey
(integer) 1
# key不存在返回0
192.168.1.100:6379> del testkey
(integer) 0
EXISTS
格式:EXISTS key
作用:檢查 key 是否存在。
返回值:存在返回 1,否則返回 0 。
示例:
192.168.1.100:6379> set testkey 1
OK
192.168.1.100:6379> exists testkey
(integer) 1
192.168.1.100:6379> del testkey
(integer) 1
192.168.1.100:6379> exists testkey
(integer) 0
EXPIRE
格式:EXPIRE key seconds
作用:為給定 key 設定生存時間,單位為秒,當 key 過期時,被自動刪除。對一個已經帶有生存時間的 key 執行 EXPIRE 命令,新指定的生存時間會取代舊的生存時間。PEXPIRE命令單位為毫秒。
返回值:設定成功返回 1 。key 不存在或者不能為 key 設定生存時間時,返回 0 。
示例:
192.168.1.100:6379> set testkey 1
OK
192.168.1.100:6379> expire testkey 5
(integer) 1
192.168.1.100:6379> exists testkey
(integer) 1
192.168.1.100:6379> exists testkey
(integer) 0
EXPIREAT
格式:EXPIREAT key timestamp
作用:為 key 設定生存時間,時間為UNIX 時間戳,單位為秒。PEXPIREAT命令單位為毫秒。
返回值:設定成功返回 1 。key 不存在或者不能為 key 設定生存時間時,返回 0 。
示例:
192.168.1.100:6379> set testkey 1
OK
192.168.1.100:6379> expireat testkey 1486456903
(integer) 1
192.168.1.100:6379> exists testkey
(integer) 1
192.168.1.100:6379> exists testkey
(integer) 0
KEYS
格式:KEYS pattern
作用:查詢符合pattern格式要求的key列表。pattern可使用如下萬用字元
? 僅與一個任意字元匹配。
* 與任意字元匹配。
[] 與可選的字元匹配。
\x 對x進行轉義。
返回值:符合pattern格式要求的key列表。
示例:
192.168.1.100:6379> set testkey 1
OK
192.168.1.100:6379> keys test*
1) "testkey"
(1.92s)
192.168.1.100:6379> keys test?ey
1) "testkey"
(1.72s)
192.168.1.100:6379> del 'testkey'
(integer) 1
192.168.1.100:6379> keys test*
(empty list or set)
(1.71s)
PERSIST
格式:PERSIST key
作用:移除給定 key 的生存時間。
返回值:成功返回1,失敗或key不存在返回0。
示例:
192.168.1.100:6379> persist testkey
(integer) 0
192.168.1.100:6379> set testkey 1
OK
192.168.1.100:6379> expire testkey 15
(integer) 1
192.168.1.100:6379> persist testkey
(integer) 1
192.168.1.100:6379> exists testkey
(integer) 1
SORT
格式:SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC | DESC] [ALPHA] [STORE destination]
作用:對列表、集合、有序集合進行排序,返回排序的結果或儲存到destination中。預設按數字進行排序。
返回值:排序結果或destination元素的個數。
示例:
# 初始化資料
192.168.1.100:6379> sadd testkey 4
(integer) 1
192.168.1.100:6379> sadd testkey 3
(integer) 1
192.168.1.100:6379> sadd testkey 8
(integer) 1
# 對集合進行排序,預設為升序
192.168.1.100:6379> sort testkey
1) "3"
2) "4"
3) "8"
# 對集合進行降序排序
192.168.1.100:6379> sort testkey DESC
1) "8"
2) "4"
3) "3"
# 使用limit限制範圍
192.168.1.100:6379> sort testkey DESC limit 1 1
1) "4"
# 初始化資料
192.168.1.100:6379> set testkey_4 100
OK
192.168.1.100:6379> set testkey_3 50
OK
192.168.1.100:6379> set testkey_8 10
OK
# 使用by指定排序的參考key,用*匹配testkey的值
192.168.1.100:6379> sort testkey by testkey_* DESC
1) "4"
2) "3"
3) "8"
# 使用get返回關聯資料
192.168.1.100:6379> sort testkey by testkey_* DESC get testkey_*
1) "100"
2) "50"
3) "10"
# sort預設按照數字進行排序,會轉換為雙精度數字,對於字串直接使用sort會報錯,新增alpha可要求sort按照字典順序排序
192.168.1.100:6379> sadd testkey a
(integer) 1
192.168.1.100:6379> sadd testkey b
(integer) 1
192.168.1.100:6379> sadd testkey c
(integer) 1
192.168.1.100:6379> sort testkey
(error) ERR One or more scores can't be converted into double
192.168.1.100:6379> sort testkey alpha
1) "a"
2) "b"
3) "c"
TTL
格式:TTL key
作用:查詢設定了生存時間的key的剩餘時間,單位為秒。
返回值:正常情況下返回剩餘時間,如果key沒有設定生存時間返回-1,如果key不存在返回-2。
示例:
192.168.1.100:6379> set testkey 1
OK
192.168.1.100:6379> expire testkey 50
(integer) 1
192.168.1.100:6379> ttl testkey
(integer) 47
192.168.1.100:6379> ttl testkey
(integer) 29
192.168.1.100:6379> ttl testkey
(integer) -2
TYPE
格式:TYPE key
作用:返回key的型別
返回值:key的型別
示例:
# 字串型別
192.168.1.100:6379> set testkey1 2
OK
192.168.1.100:6379> type testkey1
string
#集合型別
192.168.1.100:6379> sadd testkey2 d
(integer) 1
192.168.1.100:6379> type testkey2
set
#列表型別
192.168.1.100:6379> lpush testkey3 d
(integer) 1
192.168.1.100:6379> type testkey3
list
# 雜湊型別
192.168.1.100:6379> hset testkey4 t t
(integer) 1
192.168.1.100:6379> type testkey4
hash
# 有序集合型別
192.168.1.100:6379> zadd testkey5 100 d
(integer) 1
192.168.1.100:6379> type testkey5
zset