当前位置: 首页 > 工具软件 > Tair > 使用案例 >

tair详解

锺离马鲁
2023-12-01

一、tair主要有mdb,rdb,ldb三种存储引擎:

  1. mdb
    定位于cache缓存,类似于memcache。容量有限制
    支持k/v存取和prefix操作

mdb的应用场景:
在实际业务中,大部分当缓存用(后端有DB之类的数据源)。
也可用做大访问少量临时数据的存储(例如session登录,防攻击统计等)。
集团内绝对多数cache服务都是采用的tair mdb。
用于缓存,降低对后端数据库的访问压力。
临时数据存储,分钟级别后失效,偶尔部分数据丢失不会对业务产生较大影响。
读多写少,读qps达到万级别以上。

典型应用场景:

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

典型用法:
session场景。这种场景一般访问量非常高,且对响应时间有很高的要求,对数据有一定的一致性要求。后端无数据源,数据丢失对应用影响不大。
如:mdb 存储: m_group1 非持久化集群

  1. rdb
    定位于cache缓存,采用了redis的内存存储结构。
    支持k/v,list,hash,set,sortedset等数据结构。

rdb的应用场景
适用于需要高速访问某些数据结构的应用,例如SNS中常见的的粉丝存储就可以采用set等结构;或者存储一个商品的多个属性(hashmap);高效的消息队列(list)等。现在有30个左右的应用在使用rdb服务。

  1. ldb
    定位于高性能存储,并可选择内嵌mdb cache加速,这种情况下cache与持久化存储的数据一致性由tair进行维护。
    支持k/v,prefix等数据结构。今后将支持list,hash,set,sortedset等redis支持的数据结构。理论上是没有限制的

ldb的应用场景
存储,里面可以细分如下场景:

  1. 持续大数据量的存入读取,类似淘宝交易快照。
  2. 高频度的更新读取,例如计数器,库存等。
  3. 离线大批量数据导入后做查询。参见fastdump
    也可以用作cache:
    数据量大,响应时间敏感度不高的cache需求可以采用。例如天猫实时推荐。
    如:ldb 存储: p_group1 持久化集群

4.名词说明
group
类似于集群的概念, cs可以控制多个group,目前支持的group包括

m_group1 非持久化集群
p_group1 持久化集群
两个group相当于两个集群

namespace 简称 ns, 用于区分不同的业务,由中间件或者运维,分配给业务的唯一区分不同业务的标识,业务部门需要申请
quota
配额,对于非持久化集群,限定了某个ns,所使用的内存大小,查处该内存大小会面临LRU,把老的数据淘汰,对于持久化
集群, 该设置相当于内存缓存的大小,适当设置可以增加访问速度。

expireTime 超时时间,对于存储在tair的数据,超出expireTime,该数据就会超时,返回超时或者不存在
version 数据的版本,用来做乐观锁,只有设置了正确的版本,数据才能更新成功

 类似资料: