Redis 热 key

梦莱2年前技术文章808

1、hotkeys

该方案只能针对于 key 的过期淘汰策略为 allkeys-lfu 或者 volatile-lfu 的实例。

-----查看淘汰策略
config get maxmemory-policy
----修改淘汰策略
config set maxmemory-policy volatile-lfu
--查看 hotkey
redis-cli -h r-xxx.redis.rds.aliyuncs.com -p 6379 -a "123456" --hotkeys
redis-cli --hotkeys
查询结果反馈如下:
[root@orcls ~]# redis-cli --hotkeys

# Scanning the entire keyspace to find hot keys as well as
# average sizes per key type.  You can use -i 0.1 to sleep 0.1 sec
# per 100 SCAN commands (not usually needed).

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.
[root@orcls ~]# redis-cli --hotkeys

# Scanning the entire keyspace to find hot keys as well as
# average sizes per key type.  You can use -i 0.1 to sleep 0.1 sec
# per 100 SCAN commands (not usually needed).


-------- summary -------

Sampled 7 keys in the keyspace!

补充:LRU 和 LFU 算法区别:

LRU是从满足算法条件的数据中选择空闲时间最长的

LFU是从满足算法条件的数据中选择使用频率最低的

2、monitor

Redis 的 MONITOR 命令能够忠实地打印 Redis 中的所有请求,包括时间信息、Client 信息、命令以及 Key 信息。在发生紧急情况时,可以通过短暂执行 MONITOR 命令并将返回信息输入至文件,在关闭 MONITOR 命令后,对文件中请求进行归类分析,找出这段时间中的热 Key。

注意:由于 MONITOR 命令对 Redis 实例性能消耗较大,非特殊情况不推荐使用 MONITOR 命令。

127.0.0.1:6379> monitor
OK
1684220725.203176 [0 172.16.104.32:38579] "PING"
1684220725.713214 [0 172.16.104.60:55774] "PING"
1684220725.907949 [0 172.16.104.32:38579] "INFO"
1684220726.120256 [0 172.16.104.32:38579] "PUBLISH" "__sentinel__:hello" "172.16.104.32,26379,f798a63e858bff905ca3ae7cdb2a5db16179806b,2,mymaster,172.16.104.32,6379,2"
1684220726.152986 [0 172.16.104.60:55774] "INFO"
1684220726.294286 [0 172.16.104.32:38579] "PING"
1684220726.723099 [0 172.16.104.60:55774] "PING"
1684220727.137292 [0 172.16.104.60:55774] "PUBLISH" "__sentinel__:hello" "172.16.104.60,26379,ed032bf681d56b743e74af1615dc264dc465444c,2,mymaster,172.16.104.32,6379,2"
1684220727.369043 [0 172.16.104.32:38579] "PING"
1684220727.742207 [0 172.16.104.60:55774] "PING"
1684220728.155509 [0 172.16.104.32:38579] "PUBLISH" "__sentinel__:hello" "172.16.104.32,26379,f798a63e858bff905ca3ae7cdb2a5db16179806b,2,mymaster,172.16.104.32,6379,2"
1684220728.384930 [0 172.16.104.32:38579] "PING"
1684220728.770192 [0 172.16.104.60:55774] "PING"
1684220729.158312 [0 172.16.104.60:55774] "PUBLISH" "__sentinel__:hello" "172.16.104.60,26379,ed032bf681d56b743e74af1615dc264dc465444c,2,mymaster,172.16.104.32,6379,2"
1684220729.407570 [0 172.16.104.32:38579] "PING"
1684220729.819311 [0 172.16.104.60:55774] "PING"
1684220730.196226 [0 172.16.104.32:38579] "PUBLISH" "__sentinel__:hello" "172.16.104.32,26379,f798a63e858bff905ca3ae7cdb2a5db16179806b,2,mymaster,172.16.104.32,6379,2"
1684220730.495966 [0 172.16.104.32:38579] "PING"
1684220730.837517 [0 172.16.104.60:55774] "PING"
1684220731.194453 [0 172.16.104.60:55774] "PUBLISH" "__sentinel__:hello" "172.16.104.60,26379,ed032bf681d56b743e74af1615dc264dc465444c,2,mymaster,172.16.104.32,6379,2"
^C
(venv) [root@orcls demo]# ^C


相关文章

SQL Server优化入门系列(二)—— 等待事件

SQL Server优化入门系列(二)—— 等待事件

在上一篇文章中(SQL Server优化入门系列(一)——快速定位阻塞SQL),我们介绍了如何快速定位SQL Server中当前正在执行的SQL,以及被阻塞的SQL。这里,我们将介绍如何通过等待事件来...

 大数据集群监控配置操作指导(二)node_exporter+mysql_exporter部署

大数据集群监控配置操作指导(二)node_exporter+mysql_exporter部署

2.node_exporter监控集群服务器(所有集群服务器)wget https://github.com/prometheus/node_exporter/releases/download/v1...

PG的锁(三)

六、锁的维护6.1 锁相关参数deadlock_timeout(integer):默认1s,表示pg数据库仅对锁超时大于1s的情况进行死锁检测。log_lock_waits : 默认关闭,若打开该参数...

trino组件对接alluxio(三)

trino组件对接alluxio(三)

本文是基于已经部署了trino和alluxio的基础上,进行的trino与alluxio的组件对接,alluxio已经开启了高可用模式。安装部署1、增加alluxio配置在core-site.xml和...

Redis Sentinel与Cluster安装部署(一)

Redis Sentinel与Cluster安装部署(一)

1、部署规划版本redis5.0.8目录规划软件安装目录/usr/local/redis5可执行文件目录/usr/local/redis5/bin数据目录/usr/local/redis5/dada/...

企业级大数据安全架构(十)

企业级大数据安全架构(十)

一、DBeaver连接Kerberos认证下的hive1.配置本地hosts因为Kerberos认证过程及集群服务中,很多是以主机名的形式进行访问的,所以工作机要设置hosts. 域名映射,我们通过部...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。