腾讯云Redis混合存储版重磅推出,万字长文助你破解缓存难题! (3)

主动淘汰:这是推荐的方式,我们通过对Key设置TTL的方式来让Key定期淘汰,以保障冷数据不会长久的占有内存。TTL的策略可以保证冷数据一定被淘汰,但是没有办法保障热数据始终在内存,这个我们在后面会展开;

被动淘汰:这个是保底方案,并不推荐,Redis提供了一系列的Maxmemory策略来对数据进行驱逐,触发的前提是内存要到达maxmemory(内存使用率100%),在maxmemory的场景下缓存的质量是不可控的,因为每次缓存一个Key都可能需要去淘汰一个Key。

四、腾讯云Redis混合产品介绍 1. 产品简介

腾讯云Redis混合存储版基于腾讯游戏线上运营多年的Tendis引擎打造。数据自动降冷,落盘压缩,最大可降低成本85%,100% 兼容Redis协议,可助力企业大幅提升生产效率,降低运营成本。

2. 产品特性 (1)研发效率+++ a. 混合存储解决方案

同样的三层架构,业务仅需要访问统一的Redis接口,让企业重新聚焦业务逻辑;

一套系统支撑,避免维护多套系统。

b. 解决缓存三大难题

一致性:通过内聚的设计,保障缓存和存储一致性

缓存击穿:All Keys In Memory设计,避免缓存击穿;

缓存持久:动态TTL设计,热数据即持久缓存。

c. 100%兼容Redis协议

100%兼容Redis协议,业务可顺畅接入。

d. 超高读写性能

高写入:为Redis定制的Rocksdb存储引擎,支持100万并发写入;

高读取:只能热数据缓存方案,提供1000万并发读取。

腾讯云Redis混合存储版重磅推出,万字长文助你破解缓存难题!

(2)运营成本-85% a. 数据自动降冷

全量数据落盘,热数据缓存内存,相对全内存方案成本-85%;

数据自动降冷,成本可控。

b. 精准缓存

动态TTL淘汰方案,精准缓存热数据,有效避免缓存雪崩;

可控的冷数据缓存策略,快速解决缓存污染问题。

c. 数据压缩

Rocksdb独有的数据结构,保障性能和压缩效果平衡;

提供高达3~N倍(统计值)的数据压缩率 。

腾讯云Redis混合存储版重磅推出,万字长文助你破解缓存难题!

(3)突破内存限制 a. PB级KV存储解决方案

全量数据存储在磁盘,突破内存的容量限制;

计算&存储分离的存储架构,突破单机磁盘限制。

b. 高扩展性

水平扩展:支持水平扩展分片;

垂直扩展:秒级的垂直扩展存储;

读写分离:缓存层热点数据读写分离。

腾讯云Redis混合存储版重磅推出,万字长文助你破解缓存难题!

五、产品架构

Redis混合存储版架构核心组件由Proxy、缓存Redis、存储Tendis组成,其中每个组件的功能介绍如下:

Proxy组件:负责对客户端请求进行路由分发,将不同的Key的命令分发到正确的分片,同时Proxy还负责了部分监控数据的采集,以及高危命令在线禁用等功能。

缓存Redis:缓存Redis组件源自于Redis 4.0 Cluster,为了支持冷数据自动降冷,我们对Redis进行了Value淘汰、写入数据同步Tendis、冷数据访问、主备热数据同步、按时间淘汰Value等核心功能的改造,改造后的混合存储版100%兼容Redis Cluster命令。

存储Tendis:Tendis是腾讯自研的KV存储引擎,一个兼容Redis协议的Rocksdb存储引擎,该引擎已经在腾讯集团内部运营多年,性能和稳定性得到了充分的验证。在混合存储系统中主要负责全量数据的存储和读取,以及数据备份,增量日志备份等功能。

腾讯云Redis混合存储版重磅推出,万字长文助你破解缓存难题!

六、混合存储带你翻越缓存三座大山 1. 一致性解决方案 (1)并行更新(隔离性)

串行更新:单Key串行更新,保证时序;

并行更新:Slot维度并行更新,提升性能。

(2)部分成功(原子性)

系统联动:缓存&存储实时同步更新状态,通过revision同步状态;

部分成功:缓存更新成功,存储更新失败,触发HA,保障写入成功(日志幂等)。

(3)读一致性

revision:每个Key都带有一个revision,通过revision识别数据新旧;

淘汰控制:Redis不淘汰存储未更新的数据(Redis不淘汰revision <4的 数据),保证Redis不缓存旧版本数据。

腾讯云Redis混合存储版重磅推出,万字长文助你破解缓存难题!

2. 缓存击穿解决方案 (1)空数据查询

缓存所有Key 和 热数据Value,在缓存层拦截空数据查询,避免无效查询透传;

腾讯云Redis混合存储版重磅推出,万字长文助你破解缓存难题!

(2)缓存污染

可控的冷数据缓存策略,提供可配置的了冷数据缓存配置,例如业务可以配置在5分钟内访问次数超过3次才缓存在内存,可以有效防御缓存污染。

value-cache-policy-period(缓存策略时间窗);

value-cache-policy-threhold(value-cache-policy-period 时间窗内触发缓存的访问频率)。

3. 缓存雪崩解决方案

前面介绍到,缓存雪崩主要在两种情况会触发:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpzjsd.html