Redis學習筆記 – 資料型別與API(1)Key

白菜1031發表於2018-03-13

Redis學習筆記 – 資料型別與API(1)Key

Key相關命令

1. 常用命令

命令 含義 時間複雜度
keys 查詢所有符合給定模式 pattern 的 key O(N), N 為資料庫中 key 的數量
dbsize 計算key的總數 O(1)
exists 檢查key是否存在 O(1)
del 刪除指定的key-value O(1)
expire、ttl、persist 設定、檢視、去掉key的過期時間 O(1)
type 檢視key的型別 O(1)

2. keys (遍歷key)

當key較多時,命令執行時間較長,會造成阻塞,慎用該命令。

  • keys * (遍歷所有key)
  • keys [pattern] (遍歷所有正規表示式匹配的key)

3. dbsize (計算key的總數)

127.0.0.1:6379> mset hello world hehe haha php good phe his
OK
127.0.0.1:6379> keys *
1) "hello"
2) "phe"
3) "php"
4) "hehe"
127.0.0.1:6379> keys he*
1) "hello"
2) "hehe"
127.0.0.1:6379> keys he[h-l]*
1) "hello"
2) "hehe"
127.0.0.1:6379> keys ph?
1) "phe"
2) "php"
127.0.0.1:6379> dbsize
(integer) 4

4. exists key (檢查key是否存在)

5. del key [key2 key3 …] (刪除指定的key-value,可一次刪除多個)

127.0.0.1:6379> exists hello
(integer) 1
127.0.0.1:6379> del hello php
(integer) 2
127.0.0.1:6379> exists hello
(integer) 0
127.0.0.1:6379> get hello
(nil)

6. expire、ttl、persist (設定、檢視、去掉key的過期時間)

  • expire key seconds (key在seconds秒後過期)
  • ttl key (檢視key剩餘過期時間)

大於等於0時,表示剩餘過期秒數
-1 表示key存在,並且沒有過期時間
-2 表示key已經不存在了

  • persist key (去掉key的過期時間)
127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> expire hello 20
(integer) 1
127.0.0.1:6379> ttl hello
(integer) 12
127.0.0.1:6379> get hello
"world"
127.0.0.1:6379> ttl hello
(integer) -2
127.0.0.1:6379> get hello
(nil)

127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> expire hello 20
(integer) 1
127.0.0.1:6379> ttl hello
(integer) 14
127.0.0.1:6379> persist hello
(integer) 1
127.0.0.1:6379> ttl hello
(integer) -1
127.0.0.1:6379> get hello
"world"

7. type key (檢視key的型別)

string
hash
list
set
zset
none

127.0.0.1:6379> set a 1
OK
127.0.0.1:6379> type a
string
127.0.0.1:6379> sadd myset 1 2 3
(integer) 3
127.0.0.1:6379> type myset
set

更多 Key 相關命令:http://www.redis.cn/commands….


相關內容:

Redis學習筆記 – 資料型別與API(1)Key
Redis學習筆記 – 資料型別與API(2)String
Redis學習筆記 – 資料型別與API(3)List
Redis學習筆記 – 資料型別與API(4)Set
Redis學習筆記 – 資料型別與API(5)Sorted Set
Redis學習筆記 – 資料型別與API(6)Hash

相關文章