热点数据是什么?
热点数据是说多次访问或者多次被使用到的数据。这类数据访问频率比较高,如果直接访问数据库,数据库频繁链接,I/O数据流及连接造成负担,如果访问量比较大的情况很容易出现数据库或服务器崩溃。
还有另一种情况,热点数据所在redis集群中,当某一个redis服务访问过于集中访问某个热点key,而其他key无法访问,也会造成redis服务器宕机异常。
如何识别热点数据:
- 1.在产品分析时进行预测,在代码开发中进行缓存处理
- 2.收集用户行为日志,及访问数据日志信息。进行分析热点数据
- 3.对于存储在redis中的数据,进行访问排序定位缓存中的热点数据
利用redis4.x自身特性,LFU机制发现热点数据。
1.只要把redis内存淘汰机制设置为allkeys-lfu或者volatile-lfu方式
2.执行./redis-cli --hotkeys会返回访问频率高的key,并从高到底的排序
热点数据如何处理
1.redis进行缓存
主要有两点:
- 热点数据尽量不要设置过期时间
- 热点数据更新,使用互斥锁,避免死锁及资源耗费过多问题
2.多级缓存
- 除了redis缓存,可以增加本地缓存
3.热点散列
- 将每个redis实例的内存空间分成普通区域+hot zone区域