浅谈Tair缓存的三种存储引擎MDB、LDB、RDB

文章目录


什么是Tair

Tair是阿里巴巴自主研发的高性能、分布式、可扩展、高可靠的 key/value 存储系统。

一般我们可能会认为是阿里开发的加强版Redis,支持双向数据同步,能够很好的支持缓存异地多中心,有更好的写性能等。但实际Tair不仅仅是Redis的封装那么简单。


Tair的三种引擎对比

MDB LDB RDB
产品特性 Tair 1.0产品,Tair最早的一款产品,专注于内存型KV极速缓存。 Tair 1.0产品,Tair第二款产品,专注于持久化型KV高速缓存。 Tair 3.0产品,同时服务集团内部和公有云用户,全面支持业务上云。
应用场景 可接受数据丢失场景,比如经典缓存场景,临时可丢失数据场景。MDB有两种产品类型,还需根据具体场景选择对应的产品类型。 持久化KV场景,比如黑白名单,离线数据在线化等 有丰富的数据结构,支持Redis原生的数据结构,也支持自研的高级数据结构。应用场景覆盖新零售,游戏,教育,文化产品,制造业,交通物流,互联网社交等行业。
持久化特性 目前仅提供持久化规格 支持持久化,数据可靠性99.99% 目前仅提供持久化规格
性能
成本 较低
支持的数据结构 Key-Value,Pkey-{Skey1-Value1,{Skey2-Value2}} Key-Value,Pkey-{Skey1-Value1,{Skey2-Value2}} String,List,Zset,Hmap,Set等复杂数据结构。TairHash,TairString,TairGIS,TairBloom等多种数据结构
可用性 99.99% 99.95% 99。95%

1.MDB

优点:

MDB具备着高读写性能,适用容量小(一般在M级别,50G之内),读写QPS高(万级别)的缓存场景。

缺点:

类似于Memcache,由于是内存型产品,因此无法保证数据的安全性,适用于偶尔数据丢失不对业务产生较大影响的应用,对数据安全有要求的应用建议采取MDB + DB的结构,后端增加加持久化数据源。

使用场景

  • 用于缓存,降低对后端数据库的访问压力。
  • 临时数据存储,分钟级别后失效,偶尔数据丢失不会对业务产生较大影响。
  • 读多写少,读 QPS 达到万级别以上

2.LDB

优点:

LDB 适用于确实有持久化需求,读写QPS较高(万级别)的应用场景。典型应用场景如存储黑白单数据等读 QPS 高的场景或者分布式锁。

缺点:

LDB目前线上使用的SSD机型成本较高

使用场景

  • 存储黑白单数据,读 QPS 很高,DB 无法承载。
  • 榜单类数据、计数器功能,更新非常频繁,且数据不可丢失。
  • 分布式锁:利用 Tair 的 version 特性或者计数功能可以实现分布式锁,由于 LDB 具有持久化功能,当服务有出现宕机的情况,也不会因此出现锁丢失或者锁不可释放的情况,MDB则无法保证。

3.RDB

优点:

RDB兼容Redis接口,支持Redis原生字符串(String)、链表(List)、集合(Set)、有序集合(SortedSet)、哈希表(Hash)等多种数据类型,具备RDB和AOF持久化方式

缺点:

RDB适合高并发场景,但不适合大吞吐场景,即缓存Key不应过大(超过10K)

使用场景

替换Redis,一般认为RDB就是阿里定制版的Redis。

相关推荐
雨中飘荡的记忆23 分钟前
大流量下库存扣减的数据库瓶颈:Redis分片缓存解决方案
java·redis·后端
开心就好20252 小时前
UniApp开发应用多平台上架全流程:H5小程序iOS和Android
后端·ios
悟空码字2 小时前
告别“屎山代码”:AI 代码整洁器让老项目重获新生
后端·aigc·ai编程
小码哥_常2 小时前
大厂不宠@Transactional,背后藏着啥秘密?
后端
奋斗小强2 小时前
内存危机突围战:从原理辨析到线上实战,彻底搞懂 OOM 与内存泄漏
后端
小码哥_常3 小时前
Spring Boot接口防抖秘籍:告别“手抖”,守护数据一致性
后端
心之语歌3 小时前
基于注解+拦截器的API动态路由实现方案
java·后端
None3213 小时前
【NestJs】基于Redlock装饰器分布式锁设计与实现
后端·node.js
初次攀爬者3 小时前
Kafka + KRaft模式架构基础介绍
后端·kafka
洛森唛3 小时前
Elasticsearch DSL 查询语法大全:从入门到精通
后端·elasticsearch