Redis之通用命令
1.keys 查询所有的键
支持正则表达式:
keys一般不在生产环境中使用,因为在生产环境中,key会特别多(上百万),keys是一个很重的命令
那么keys怎么用呢???
- 热备从节点:从节点不执行业务,可以在从节点上执行一些比较重的命令
- scan命令,后面会学习
2.dbsize 计算key的总数
3.exists key 检查key是否存在
4.del key [key ...] 删除key
删除多个值:
5.expire key seconds 设置过期时间,key在seconds秒后过期
ttl key 查看key剩余的过期时间
persist key 去掉key的过期时间
6.type key 查看key的类型
各个命令的时间复杂度:
命令 | 时间复杂度 |
keys | O(n) |
dbsize | O(1) |
del | O(1) |
exists | O(1) |
expire | O(1) |
type | O(1) |
数据结构和内部编码:
单线程:
单线程为什么这么快???
1.纯内存
2.非阻塞IO
使用多路复用
3.避免线程切换和竞态消耗
单线程需要注意什么呢?
1.一次只运行一条命令
2.拒绝长(慢)命令
keys,flushall,flushdb,slow lua script,mutil/exec,operate big value(collection)