天天看點

tair詳解

一、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 資料的版本,用來做樂觀鎖,隻有設定了正确的版本,資料才能更新成功

繼續閱讀