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

相关推荐
Re.不晚1 分钟前
Java入门15——抽象类
java·开发语言·学习·算法·intellij-idea
雷神乐乐7 分钟前
Maven学习——创建Maven的Java和Web工程,并运行在Tomcat上
java·maven
码农派大星。11 分钟前
Spring Boot 配置文件
java·spring boot·后端
王佑辉14 分钟前
【redis】redis缓存和数据库保证一致性的方案
redis·面试
顾北川_野18 分钟前
Android 手机设备的OEM-unlock解锁 和 adb push文件
android·java
江深竹静,一苇以航20 分钟前
springboot3项目整合Mybatis-plus启动项目报错:Invalid bean definition with name ‘xxxMapper‘
java·spring boot
confiself36 分钟前
大模型系列——LLAMA-O1 复刻代码解读
java·开发语言
Wlq041541 分钟前
J2EE平台
java·java-ee
XiaoLeisj1 小时前
【JavaEE初阶 — 多线程】Thread类的方法&线程生命周期
java·开发语言·java-ee
杜杜的man1 小时前
【go从零单排】go中的结构体struct和method
开发语言·后端·golang