Redis的key的通用操作和服务管理命令
一、KEY的通用操作
KEYS * keys a * keys *a* 查看已存在所有键的名字
# keys * 查询所有键的名字,但是不建议使用,键值对多的时候,会非常消耗资源
TYPE 返回键所存储值的类型
EXPIRE\ PEXPIRE 以秒\毫秒设定生存时间
TTL\ PTTL 以秒\毫秒为单位返回生存时间
PERSIST 取消生存时间设置
DEL 删除一个key
EXISTS 检查是否存在
RENAME 变更KEY名
--设置键值对的存活时间为100s
127.0.0.1:6379> EXPIRE test 100
--观看剩余的存活时间
127.0.0.1:6379> EXPIRE test 100
二、一些概念
1.缓存穿透
--概念
访问一个不存在的key,缓存不起作用,请求会穿透到DB,流量大时DB会挂掉。
--解决方案
采用布隆过滤器,使用一个足够大的bitmap,用于存储可能访问的key,不存在的key直接被过滤;
访问key未在DB查询到值,也将空值写进缓存,但可以设置较短过期时间。
2.缓存雪崩
--概念
大量的key设置了相同的过期时间,导致在缓存在同一时刻全部失效,造成瞬时DB请求量大、压力骤增,引起雪崩。
--解决方案
可以给缓存设置过期时间时加上一个随机值时间,使得每个key的过期时间分布开来,不会集中在同一时刻失效。
3.缓存击穿
--概念
一个存在的key,在缓存过期的一刻,同时有大量的请求,这些请求都会击穿到DB,造成瞬时DB请求量大、压力骤增。
--解决方案
在访问key之前,采用SETNX(set if not exists)来设置另一个短期key来锁住当前key的访问,访问结束再删除该
三、服务器管理命令
1.查看所有状态信息
info
--查看内存信息
info memory
--查看主从
info replication
--查看cpu状态
info cpu
2.查看当前连接的会话
Client list
3.查看连接的数量及负载
Client kill ip:port
4.重置统计,动态修改
config get *
CONFIG RESETSTAT 重置统计
CONFIG GET/SET/RESTART 动态修改
5.查看所有键值对
Dbsize
6.清空所有数据(生产环境中不建议使用)
FLUSHALL 清空当前库
flushdb 清空16个库
redis默认有16个库,默认是0号库
7.监控实时指令
MONITOR 监控实时指令
8.关闭服务器
SHUTDOWN 关闭服务器
--关闭数据库:
redis-cli -a root shutdown