Redis入门到高可用(三)——通用命令
通用命令 参考 http://redisdoc.com/index.html
1. keys #查看所有key
- 时间复杂度:O(N),
N
为数据库中key
的数量。
127.0.0.1:6379> keys *
keys命令一般不在生产环境使用!
原因:生产环境键值对比较多;意义不大
想用keys命令怎么办?
①热备从节点(从节点一般不在生产环境使用,可以在从节点上执行此命令)
②使用scan命令代替keys命令
2. dbsize #计算key的总数
时间复杂度是O(1),内部有计数器,不是遍历操作的
3. exists #检查key是否存在
- 时间复杂度:O(1)
- 返回值:若
key
存在,返回1
,否则返回0
。 -
redis> SET db "redis" OK redis> EXISTS db (integer) 1 redis> DEL db (integer) 1 redis> EXISTS db (integer) 0
4. DEL key [key ...] #删除给定的一个或多个
key
不存在的
key
会被忽略。- 时间复杂度:O(N),
N
为被删除的key
的数量。 -
删除单个字符串类型的
key
,时间复杂度为O(1)。删除单个列表、集合、有序集合或哈希表类型的key
,时间复杂度为O(M),M
为以上数据结构内的元素数量。 - 返回值:被删除
key
的数量。 -
# 删除单个 key redis> SET name huangz OK redis> DEL name (integer) 1 # 删除一个不存在的 key redis> EXISTS phone (integer) 0 redis> DEL phone # 失败,没有 key 被删除 (integer) 0 # 同时删除多个 key redis> SET name "redis" OK redis> SET type "key-value store" OK redis> SET website "redis.com" OK redis> DEL name type website (integer) 3
- 时间复杂度:O(N),
5. TYPE key #返回 key
所储存的值的类型。
- 时间复杂度:O(1)
- 返回值:
-
none
(key不存在)string
(字符串)list
(列表)set
(集合)zset
(有序集)hash
(哈希表)# 字符串 redis> SET weather "sunny" OK redis> TYPE weather string # 列表 redis> LPUSH book_list "programming in scala" (integer) 1 redis> TYPE book_list list # 集合 redis> SADD pat "dog" (integer) 1 redis> TYPE pat set
6. expire、ttl、persist
expire key seconds #key在seconds秒后过期
ttl key #查看key剩余的过期时间
persist key #去掉key的过期时间