reids监控命令

实时打印出 Redis 服务器接收到的命令,调试用:redis-cli -a 密码 monitor
查看bigkey:redis-cli -a 密码 --bigkeys (-a后面接登录密码)
查看hot key:redis-cli -a 密码 --hotkeys (-a后面接登录密码)
查看慢日志:slowlog get n

怎么才算bigkey?

redis中有常见的几种数据结构,每种结构对大key的定义不同,比如:

  • value是String类型时,size超过10KB
  • value是ZSET、Hash、List、Set等集合类型时,它的成员数量超过1w个

如何查看bigkey?

redis-cli -a 密码 --bigkeys (-a后面接登录密码)。

通过这条命令就能看到各种数据类型最大的key,以及对应占用的内存大小或者内部成员数量。

redis 查看最大的可用 redis查看大key_缓存

如何解决bigkey?

将数据分片,大拆小。

怎么安全(不阻塞的状态下)删除bigkey?

  • 大于redis4.0版本,可使用UNLINK命令安全地删除大Key,该命令能够以非阻塞的方式,逐步地清理传入的Key。
  • 小于redis4.0版本,先将待删除的key重命名(防止删除期间被调用),通过scan循环获取这个key的部分数据分批进行删除。

redis如何查看hotkey?

redis-cli -a 密码 --hotkeys

redis 查看最大的可用 redis查看大key_redis_02

注意需要先把内存逐出策略设置为allkeys-lfu或者volatile-lfu,否则会返回错误:
Error: ERR An LFU maxmemory policy is not selected, access frequency not tracked. Please note that when switching between policies at runtime LRU and LFU data will take some time to adjust.

redis 查看最大的可用 redis查看大key_缓存_03


再执行一次就能看到hotkey了:

redis 查看最大的可用 redis查看大key_缓存_04


复习一下内存淘汰的几种类型:

redis 查看最大的可用 redis查看大key_redis_05