Tair(1):Tair介紹

1 介紹

? 在Tair出現之前的很長一段時間里,像redis、memcache這些知名NoSql數據庫是不支持分布式的,在這樣的背景下,由淘寶網自主開發并在2010.6開源的一個高性能、高擴展、高可靠分布式緩存,類似map的key/value結構,在淘寶、天貓等各個應用中廣泛應用。

? Tair官網:https://www.oschina.net/p/tair

? gitee地址:https://gitee.com/mirrors/Tair

? github wiki地址:https://github.com/alibaba/tair/wiki

2 概念

  • configID:一個Tair集群的唯一標識
  • namespace:應用的一個內存或者持久化存儲區域,0到65535之間的一個數字
  • quta:配額,對應了每個 namespace 儲存區的大小限制,超過配額后將使用LRU(最少使用)策略淘汰
  • expireTime:數據的過期時間。當超過過期時間之后,數據將對應用不可見,不同的存儲引擎有不同的策略清理掉過期的數據
  • prefix:前綴處理,保證了擁有相同前綴的key根據哈希算法后,分散在同一個dataserver上,提高了處理速度。

3 特性

? Tair實現了集群部署,特性都是一些集群的特性,容錯、解決單點故障、跨機房管理、多集群管理、支持副本等。Tair的特性有:

  • ?Namespace
  • ?Expire
  • ?Prefix
  • ?List,zset,hash,set
  • ?LocalCache
  • ?FlowControl

抽象存儲層,內部采用MDB、RDB、LDB三中存儲引擎滿足了各種存儲需求。

? MDB是內存型,K/V結構,底層是memcache ,由于是內存型性能最高但是不支持持久化。

? RDB底層是redis引擎,支持List、Set、Zset、Map、String等多種數據結構,性能略低于MDB。

? LDB是持久化型引擎,底層是google的levelDB,K/V結構,性能最低,但是可靠性最高。

4 應用場景

? 由于Tair底層的MDB、RDB、LDB三種引擎支持,既能作為緩存使用又可以作為持久化存儲數據庫,命令除了put、get、delete以及批量接口外,還有一些附加的實用功能比如version支持、原子計數器、item支持,可以用于實現分布式鎖,隊列等。

5 Tair與其他緩存對比

TairRedisMemcacheEhcache
是否開源開源開源開源開源
使用語言服務器端C++;客戶端支持C、JAVA、PHP等ANSI C語言編寫 ,提供多種語言(C/C++/JAVA/PHP等)的API服務端C,客戶端支持c、php、java、python等java
集群支持3.0以后支持服務端不支持,客戶端使用一致性hash算法將數據分布式存儲支持,默認是異步同步
容災支持3.0以后支持可通過客戶端實現支持
高可用支持3.0以后支持不支持,可通過第三方應用比如magent實現支持
動態擴展支持3.0以后支持可通過客戶端實現支持,本地存儲在.data和.index文件
效率LDB < RDB < MDB高于redis高于memcache
持久化LDB、RDB引擎支持支持(AOF、默認RDB)不支持,可通過第三方應用實現支持
緩存過期失效策略支持支持支持,lru算法支持,LRU(默認),FIFO,LFU
數據結構K/V、list、hash、set、sortedsort等K/V、list、hash、set、sortedsort五種數據結構支持簡單的K/V結構支持簡單的K/V結構
分布式支持3.0以后支持客戶端使用一致性hash做分布式支持
跨機房管理支持不支持不支持不支持
多集群管理支持不支持不支持不支持
使用狀況只有阿里內部大規模使用普遍使用使用情況較多多用于hibernate的緩存實現
缺點文檔不全,社區不活躍,單節點上性能沒有redis高,不能對key實現模糊查詢,單條數據不能太大key建議1k以下,value不能超過1M,建議10k以下3.0以前不支持集群,單線程無法充分利用多核服務器CPU,事務支持較弱,rdb每次都是寫全量數據,成本高,aof追加導致log特別大結構單一,數據在內存重啟會丟失,數據大小受內存限制結構單一、只適用于java體系,只能用java編寫客戶端,且使用磁盤做cache時占空間
優點采用分布式集群架構,具備自動容災及故障遷移能力,對存儲層做了抽象,底層方便切換不同的存儲引擎,采用一致性哈希算法將key分散在Q個桶中,并將桶放到不同的dataserver上,保證數據平衡,tair高可用比較強,容災性比redis強,支持多種集群結構,支持跨機房數據分布非常豐富的數據結構而且都是原子性操作、高速讀寫、支持事務,支持aof、rdb兩種持久化機制,擁有豐富特性,訂閱發布 Pub / Sub 功能、Key 過期策略、事務、支持多個 DB、計數、支持集群和數據備份簡潔,靈活,多線程非阻塞io效率高,所有支持多種語言api,且在并發下用cas保證一致性效率高,功能強大,版本迭代特別快、緩存策略支持多種,可以通過rmi可插入api實現分布式緩存、具備緩存監聽、支持多緩存實例、提供hibernate的緩存實現、支持非持久化和持久化緩存數據

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/206721.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/206721.shtml
英文地址,請注明出處:http://en.pswp.cn/news/206721.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用單例模式+觀察者模式實現參數配置實時更新

使用vector存儲觀察者列表 #include <iostream> #include <vector> #include <functional> #include <algorithm>// 配置參數結構體 struct MyConfigStruct {int parameter1;std::string parameter2; };class Config { public:using Observer std::f…

hive 命令行中使用 replace 和nvl2 函數報錯

1.有時候在命令行的情況下使用 replace 函數時會報錯 這個時候可以使用 translate 代替 2.有時候使用 nvl2() 函數的時候會報錯 這個時候可以用 case when 來代替

【Spring 源碼】 深入理解 Bean 定義之 BeanDefinition

&#x1f680; 作者主頁&#xff1a; 有來技術 &#x1f525; 開源項目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 倉庫主頁&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 歡迎點贊…

兩數之和問題

更好的閱讀體驗請點擊 兩數之和。 題目&#xff1a;兩數之和 ? 給定一個整數數組 nums 和一個整數目標值 target&#xff0c;請你在該數組中找出 和為目標值 target 的那 兩個 整數&#xff0c;并返回它們的數組下標。 ? 你可以假設每種輸入只會對應一個答案。但是&#xff…

MetricBeat監控Redis

目錄 一、安裝部署 二、開啟Redis監控模塊 三、編輯Redis配置文件 四、啟動Metricbeat 五、查看監控圖表 一、安裝部署 metriceat的安裝部署參考章節&#xff1a; 監控組件>Metricbeat安裝使用&#xff0c;這里不再贅述。 二、開啟Redis監控模塊 進入metricbeat安裝目錄…

【每日一題】出租車的最大盈利

文章目錄 Tag題目來源解題思路方法一&#xff1a;遞歸方法二&#xff1a;遞歸記錄數組記憶化搜索方法三&#xff1a;動態規劃&#xff08;遞推&#xff09; 寫在最后 Tag 【遞歸】【記憶化搜索】【動態規劃】【數組】【2023-12-08】 題目來源 2008. 出租車的最大盈利 解題思路…

【EI會議征稿中】2024年第四屆人工智能、自動化與高性能計算國際會議(AIAHPC 2024)

2024年第四屆人工智能、自動化與高性能計算國際會議&#xff08;AIAHPC 2024&#xff09; 2024 4th International Conference on Artificial Intelligence, Automation and High Performance Computing 2024第四屆人工智能、自動化與高性能計算國際會議(AIAHPC 2024)將于20…

藍橋杯從零開始備戰(Python組)---基礎知識篇

第一次嘗試報名藍橋杯的Python組&#xff0c;好好備戰&#xff0c;希望省賽可以拿獎&#xff01;目前是整理了一些Python的常用函數和常用內置庫&#xff0c;后面可能會開始刷題&#xff0c;如果有比較需要記住的知識點&#xff0c;會再寫一篇刷題篇 一、輸入輸出 1.輸入字符…

游戲被攻擊怎么辦

隨著科技的進步和互聯網的普及&#xff0c;游戲行業也正在經歷前所未有的變革。玩家們不再滿足于傳統的線下游戲&#xff0c;而是轉向了線上游戲。然而&#xff0c;隨著游戲的線上化&#xff0c;游戲安全問題也日益凸顯。游戲受到攻擊是游戲開發者永遠的痛點&#xff0c;談“D“…

HomeAssistant添加HACS插件并實現公網控制米家,HomeKit等智能家居

HomeAssistant添加HACS插件并實現公網控制米家&#xff0c;HomeKit等智能家居 文章目錄 HomeAssistant添加HACS插件并實現公網控制米家&#xff0c;HomeKit等智能家居基本條件一、下載HACS源碼二、添加HACS集成三、綁定米家設備 ? 上文介紹了如何實現群暉Docker部署HomeAssist…

【嵌入式開發 Linux 常用命令系列 4.1 -- git push 遠程分支與本地分支查看】

文章目錄 概述git push 語法步驟1&#xff1a;git 遠程主機名查看步驟2&#xff1a;git 遠程分支名查看步驟3&#xff1a;git 本地分支名查看示例演示 概述 在日常工作中&#xff0c;將代碼 git clone 本地之后&#xff0c;或者使用repo init && repo sync 之后不知道…

SQLserver截取字符串

當我們存的數據是json的時候可以全部取出在模糊查詢但是有多個重復數據的時候就沒辦法準確的模糊出來這個時候我們就需要用的字符串截取 --創建函數create FUNCTION [dbo].[Fmax] (str varchar(50),start VARCHAR(50),length VARCHAR(50)) RETURNS varchar(max) AS BEGINDEC…

商品詳情頁評論和評論列表評論的排序html代碼

以下是一個簡單的商品詳情頁的 HTML 代碼示例&#xff1a; <!DOCTYPE html> <html> <head><title>商品詳情頁</title><style>/* CSS 樣式可以在這里添加 */</style> </head> <body><h1>商品詳情頁</h1><…

7-1 查找書籍

給定n本書的名稱和定價&#xff0c;本題要求編寫程序&#xff0c;查找并輸出其中定價最高和最低的書的名稱和定價。 輸入格式: 輸入第一行給出正整數n&#xff08;<10&#xff09;&#xff0c;隨后給出n本書的信息。每本書在一行中給出書名&#xff0c;即長度不超過30的字…

條碼生成器與Zint使用

文章目錄 目的條形碼zint支持條形碼種類下載編譯qt pro配置code保存條形碼目的 1: 了解條形碼數據理論知識 2: 了解zint第三方庫相關, 如何編譯引用到項目中 條形碼 條形碼(Barcode)一維碼 和二維碼(QR code)都是用于存儲信息的圖形化表示方式,通常應用于商品標識、庫…

無頭瀏覽器與Selenium:探索無界爬蟲的奇妙世界

selenium設置無頭瀏覽器 背景 ? 我們之前的selenium都是瀏覽器驅動自動打開一個網頁&#xff0c;執行相關操作&#xff0c;其實也可以讓其后臺顯示&#xff0c;不用在前臺顯示。 ? 要設置無頭瀏覽器&#xff0c;可以使用Selenium的Headless模式。在Headless模式下&#xf…

鴻蒙(HarmonyOS)應用開發——web組件

簡述 在開發的工作中&#xff0c;可能存在一個場景&#xff0c;我們有一個問卷調查的h5頁面&#xff0c;需要切入到app 中。這個時候&#xff0c;就需要從app 端操作&#xff0c;切換到web端操作。不管是安卓、ios、小程序都提供有web組件。那么harmonyos 中也提供web組件來在…

Kafka中的Topic

在Kafka中&#xff0c;Topic是消息的邏輯容器&#xff0c;用于組織和分類消息。本文將深入探討Kafka Topic的各個方面&#xff0c;包括創建、配置、生產者和消費者&#xff0c;以及一些實際應用中的示例代碼。 1. 介紹 在Kafka中&#xff0c;Topic是消息的邏輯通道&#xff0…

【華為數據之道學習筆記】3-2 基礎數據治理

基礎數據用于對其他數據進行分類&#xff0c;在業界也稱作參考數據。基礎數據通常是靜態的&#xff08;如國家、幣種&#xff09;&#xff0c;一般在業務事件發生之前就已經預先定義。它的可選值數量有限&#xff0c;可以用作業務或IT的開關和判斷條件。當基礎數據的取值發生變…

GSAP動畫庫,探究蘋果官網頁面滾動動畫是如何實現的

GSAP動畫庫&#xff0c;探究蘋果官網頁面滾動動畫是如何實現的 前言 每次瀏覽蘋果官網時都在好奇&#xff0c;當我們向下滾動頁面時一個個文字或圖片總能緩緩浮現&#xff0c;往上滾動時又能慢慢收起來&#xff0c;這就究竟是如是實現的呢。在查閱一些資料時發現了Scrollmagi…