浅谈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。

相关推荐
qq_17448285753 分钟前
springboot基于微信小程序的旧衣回收系统的设计与实现
spring boot·后端·微信小程序
转世成为计算机大神11 分钟前
易考八股文之Java中的设计模式?
java·开发语言·设计模式
qq_3273427333 分钟前
Java实现离线身份证号码OCR识别
java·开发语言
锅包肉的九珍34 分钟前
Scala的Array数组
开发语言·后端·scala
心仪悦悦37 分钟前
Scala的Array(2)
开发语言·后端·scala
Oak Zhang1 小时前
sharding-jdbc自定义分片算法,表对应关系存储在mysql中,缓存到redis或者本地
redis·mysql·缓存
为什么每天的风都这么大1 小时前
Vscode/Code-server无网环境安装通义灵码
ide·vscode·阿里云·编辑器·ai编程·code-server
2401_882727571 小时前
BY组态-低代码web可视化组件
前端·后端·物联网·低代码·数学建模·前端框架
心仪悦悦1 小时前
Scala中的集合复习(1)
开发语言·后端·scala
门牙咬脆骨2 小时前
【Redis】redis缓存击穿,缓存雪崩,缓存穿透
数据库·redis·缓存