分布式缓存服务 DCS-发现和处理Redis大Key热Key:如何优化大Key和热Key
如何优化大Key和热Key
类别 |
方法 |
---|---|
大Key |
进行大Key拆分。 分为以下几种场景:
|
将大Key单独转移到其余存储介质。 无法拆分的大Key建议使用此方法,将不适用Redis能力的数据存至其它存储介质,如SFS或者其余NoSQL数据库,并在Redis中删除该大Key。
注意:
禁止使用DEL直接删除大Key,可能会造成Redis阻塞,甚至主备倒换。Redis 4.0及以上版本建议采用UNLINK命令删除大Key。 |
|
合理设置过期时间并对过期数据定期清理。 合理设置过期时间,避免历史数据在Redis中大量堆积。由于Redis的惰性删除策略,过期数据可能并不能及时清理,如果发现Redis过期Key清理较慢,建议配置过期Key扫描。 |
|
热Key |
使用读写分离。 如果热Key主要是读流量较大,则可以在客户端配置读写分离,降低对主节点的影响。还可以增加多个副本以满足读需求,但是备机较多也有相应的影响,D CS 主备节点之间使用的是星型复制,即所有的备节点都直接和主节点保持同步,这样能保证备节点之间相互独立,且复制延迟较小。缺点是在备节点数量较多的情况下,主节点的CPU和网络负载会较高。 |
使用客户端缓存/本地缓存。 该方案需要提前了解业务的热点Key有哪些,设计客户端/本地和远端Redis的两级缓存架构,热点数据优先从本地缓存获取,写入时同时更新,这样能够分担热点数据的大部分读压力。缺点是需要修改客户端架构和代码,改造成本较高。 |
|
设计熔断/降级机制。 热Key极易造成缓存击穿,高峰期请求都直接透传到后端数据库上,从而导致业务雪崩。因此热Key的优化一定需要设计系统的熔断/降级机制,在发生击穿的场景下进行限流和服务降级,保护系统的可用性。 |
- 分布式缓存Redis实战_Redis技术实战_分布式缓存-华为云
- 分布式缓存服务Redis优势_分布式缓存服务Redis_华为云
- 免费缓存数据库_KV数据库redis场景_云数据库资源免费领取_缓存数据库2
- 分布式缓存数据迁移_分布式缓存_数据迁移-华为云
- 分布式缓存服务Redis版_什么是分布式缓存
- Redis有什么作用_数据缓存_华为云Redis-华为云
- 分布式缓存Redis企业版优势_分布式缓存Redis企业版特点
- 分布式缓存Redis稳定性怎么样_分布式缓存Redis_企业版-华为云
- 自建Redis成本高怎么办_中间件_华为云Redis-华为云
- GaussDB主键生成_GaussDB存储过程_高斯数据库主键生成_华为云