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
相关文章
相关标签/搜索