文章目录
什么是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。