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