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