Redis通用命令

来源:互联网 发布:淘宝能买到呼死你吗 编辑:程序博客网 时间:2024/06/14 06:27

Redis中有些命令是某种数据结构所特有的,有些命令是可以被五种数据结构共用的,这里介绍的命令属于第二种。

一、单个键

1、Type key,返回key的类型(String、List、Hash、Set、Zset)
2、Object encoding key,返回key的实际数据类型
3、Redis底层数据结构

  • sds,简单动态字符串
  • hash,HashTable
  • linkedlist,双向列表
  • ziplist,压缩列表
  • intset,整数集合
  • skiplist,跳跃表

4、redisObject模型
这里写图片描述
5、Del key,删除指定key
6、Exists key,检查key是否存在
7、Rename key newKey,强制重命名
(1)当newKey存在时
set a b
set c d
rename a c
get a //nil
get c //b
(2)newKey不存在时
set a b
rename a c
get a //nil
get c //b
8、Renamenx key newKey,仅当newKey不存在时才会重命名,存在时不做操作
9、Expire key seconds,key在seconds秒后过期
10、Ttl key,查看key剩余的过期时间
返回值为-1表示key存在且没有过期时间
返回值为-2表示key已经不存在了
11、Persist key,去掉key的过期时间(即永不过期)

二、遍历键

1、keys *,遍历所有的key
2、keys [pattern],遍历所有符合[pattern]规则的key
keys he*,查询所有一he开头的key
keys ?e[h-o]*,查询所有的第二个字母是e第三个字母是h-o之间的某个字母的key
3、scan cursor [MATCH match] [COUNT count]
这里写图片描述
4、单线程Redis注意事项

  • 一次只运行一条命令
  • 拒绝长(慢)命令,例如:keys、flushall、flushdb、slow lua script、mutil/exec、operate big value(collection)
  • Redis其实不是单线程,fysnc file descriptor进行持久化

5、keys命令可用作热备从节点,从节点不接受客户端的请求,仅当主节点出现问题时立刻顶上

三、服务器数据

1、Dbsize,计算当前数据库中key的总数
2、Select index,选择数据库(默认16个数据库,索引为0-15)
3、建议关闭select功能

  • 不便于开发(部分客户端不支持)
  • 难于诊断错误
  • 推荐单机多实例

4、flushdb,清除当前数据库的所有key-value
5、flushall,清除所有数据库的所有key-value

四、扩展命令

有兴趣的同学,可以详细了解如下命令:
migrate、dump、randomkey、sort、expireat

1 0