Redis的通用命令有:
keys

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)。

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)。

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)。

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)。

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)。

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

South
182 声望5 粉丝