上一节,我们聊到了 Redis 的 Bigkey,这节内容我们聊聊同样需要引起重视的 Hotkey。
1 背景
Hotkey 指某个时间段访问频率比较高的键值,对应的业务比如热点话题或者热点商品。
Hotkey 可能会导致集群流量不均衡,或者某一个节点 QPS、网卡流量被打满。
因此需要考虑一些措施来降低 Hotkey 出现的概率,比如在编码阶段避免产生 Hotkey,或者提前准备出现 Hotkey 时的应对方案。
2 Hotkey 产生原因
日常生活中,可能很多热点事件的背后,都会产生一个鲜为人知的 Hotkey。比如某某明星出轨、双十一某个热门商品的促销等等。如果不提前准备,很可能导致用户无法查看到相关评论或者买到心仪的商品。因此提前预防和优化 Hotkey 显得尤为重要。
3 怎样发现 Hotkey
Hotkey 对 Redis 实例影响这么大,那么应该怎样发现 Hotkey 呢?这里总结了几个常见做法:
3.1 客户端
比如每次调用 Redis 命令时,使用字典进行记录。或者修改 Redis SDK,记录每个请求,定期上报数据。
但这种方法存在一些问题:
无法预知 key 的个