Redis通用命令

Redis的通用命令有:
keysredis

172.0.0.1:6379> set test1 hello
127.0.0.1:6379> set test2 world
127.0.0.1:6379> keys *test*
1) "test2"
2) "test1"

keys通常不在生產環境使用,生產環境的key-value比較多,會很是慢,redis是單線程,可能會堵塞其餘命令。時間複雜度爲O(n)。
能夠用scan命令。
dbsize
計算key的總數,這是redis內置的一個計算器,時間複雜度爲O(1)。數據結構

127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3 k4 v4
OK
127.0.0.1:6379> dbsize
(integer) 4
127.0.0.1:6379> sadd myset a b c d e f g
(integer) 7
127.0.0.1:6379> dbsize
(integer) 5

exists
檢查key是否存在,存在返回1,不存在返回0線程

127.0.0.1:6379> set a b
OK
127.0.0.1:6379> exists a
(integer) 1
127.0.0.1:6379> del a
(integer) 1
127.0.0.1:6379> exists a
(integer) 0

del
刪除指定key-value,能夠同時刪除多個,刪除成功返回刪除的key個數,若是不存在返回0,時間複雜度爲O(1)。code

127.0.0.1:6379> mset a b test1 hello test2 world
OK
127.0.0.1:6379> del a test1 test2
(integer) 3
127.0.0.1:6379> del a test1 test2
(integer) 0

expire
expire key seconds 設置key在seconds秒後過時,時間複雜度爲O(1)。get

127.0.0.1:6379> set test1 hello
OK
127.0.0.1:6379> expire test1 20
(integer) 1

ttl
ttl key 查看key剩餘的過時時間,時間複雜度爲O(1)。string

127.0.0.1:6379> ttl test1
(integer) 13
127.0.0.1:6379> ttl test1
(integer) 8
127.0.0.1:6379> ttl test1
(integer) -2
# -2表明key已經不存在了
# 過時後再去查看key值,發現已經不存在了
127.0.0.1:6379> get test1
(nil)

persist
persist key 去掉key的過時時間,時間複雜度爲O(1)。hash

127.0.0.1:6379> set test1 hello
OK
127.0.0.1:6379> expire test1 60
(integer) 1
127.0.0.1:6379> ttl test1
(integer) 56
# 去掉過時時間
127.0.0.1:6379> persist test1
(integer) 1
127.0.0.1:6379> ttl test1
(integer) -1
# -1表明key存在,可是沒有過時時間
# 去掉過時時間後即使過時了也沒有被刪除
127.0.0.1:6379> get test1
"hello"

type
type key 返回key的類型,redis有5種數據結構,因此返回值有string、hash、list、set、zset,若是key不存在的,則返回none,時間複雜度爲O(1)。test

127.0.0.1:6379> type myset
none
127.0.0.1:6379> sadd myset a b c d e
(integer) 5
127.0.0.1:6379> type myset
set
相關文章
相關標籤/搜索