Redis之通用命令

1.keys  查询所有的键

Redis之通用命令

支持正则表达式:

Redis之通用命令

Redis之通用命令

keys一般不在生产环境中使用,因为在生产环境中,key会特别多(上百万),keys是一个很重的命令

那么keys怎么用呢???

  • 热备从节点:从节点不执行业务,可以在从节点上执行一些比较重的命令
  • scan命令,后面会学习

2.dbsize  计算key的总数

Redis之通用命令

3.exists key  检查key是否存在

Redis之通用命令

4.del key [key ...] 删除key

Redis之通用命令

删除多个值:

Redis之通用命令

5.expire key seconds  设置过期时间,key在seconds秒后过期

ttl key  查看key剩余的过期时间

Redis之通用命令

persist key 去掉key的过期时间

Redis之通用命令

6.type key 查看key的类型

Redis之通用命令

各个命令的时间复杂度:

命令 时间复杂度
keys O(n)
dbsize O(1)
del O(1)
exists O(1)
expire O(1)
type O(1)

数据结构和内部编码:

Redis之通用命令

 单线程:

Redis之通用命令

单线程为什么这么快???

1.纯内存

2.非阻塞IO

使用多路复用

Redis之通用命令

3.避免线程切换和竞态消耗

单线程需要注意什么呢?

1.一次只运行一条命令

2.拒绝长(慢)命令

keys,flushall,flushdb,slow lua script,mutil/exec,operate big value(collection)