探秘阿里云云數據庫Tair:性能、特性與應用全景解析

引言

在數字化浪潮席卷全球的當下,數據已然成為企業最為關鍵的資產之一,如何高效管理和運用這些數據,成為了企業在激烈競爭中脫穎而出的關鍵。云數據庫作為現代數據管理的核心工具,憑借其卓越的可擴展性、靈活性以及高效的數據處理能力,正逐步成為各類企業的首選方案。無論是大型企業構建復雜的數據中心,還是初創公司快速搭建數據服務,云數據庫都能提供恰到好處的支持。

阿里云云數據庫 Tair,作為云數據庫領域的佼佼者,更是以其獨特的優勢和強大的功能,為用戶帶來了前所未有的數據管理體驗。它不僅具備傳統云數據庫的基本特性,還在性能、兼容性、穩定性等方面實現了重大突破,能夠滿足不同行業、不同規模企業的多樣化需求。

一、Tair 是什么

Tair 是阿里云國產自研的云原生內存數據庫,它在云數據庫領域猶如一顆璀璨的明星,散發著獨特的光芒。Tair 最大的亮點之一,便是其對 Redis 協議的完全兼容。這意味著,那些已經基于 Redis 開發的應用程序,能夠輕松、無縫地遷移到 Tair 上,無需對代碼進行大規模的修改,大大降低了技術遷移成本,為企業節省了大量的時間和人力成本。

在性能方面,Tair 展現出了令人驚嘆的實力,具備超高性能。無論是面對高并發的訪問請求,還是處理大規模的數據存儲需求,Tair 都能應對自如,輕松駕馭。其讀寫速度極快,能夠在極短的時間內完成數據的讀取與寫入操作,這使得依賴它的應用程序能夠實現快速響應,為用戶帶來流暢、高效的使用體驗。在電商行業,每到促銷活動期間,如 “雙十一”“618” 等,大量用戶同時涌入平臺進行購物、查詢商品信息等操作,對數據庫的性能是極大的考驗。而 Tair 憑借其卓越的性能,成功支撐了這些電商平臺在活動期間每秒數億次的 QPS 壓力,確保了購物車實時顯示到手價、用戶下單自動領券等核心業務場景的穩定運行,讓消費者能夠在購物過程中感受到流暢的體驗,也讓商家能夠順利開展促銷活動,實現銷售額的增長。

二、核心特性剖析

(一)強大的兼容性

Tair 在兼容性方面表現卓越,堪稱行業典范。它全面兼容多個流行的 Redis 版本,無論是 Redis 5.0、6.0 還是 7.0,Tair 都能無縫對接,為用戶提供了極大的便利。這使得那些已經基于 Redis 開發的應用程序,能夠輕松遷移到 Tair 上,無需對代碼進行大規模的修改,大大降低了技術遷移成本,為企業節省了大量的時間和人力成本。

不僅如此,Tair 還兼容 memcached 1.2 ,這進一步拓展了其應用范圍。對于那些同時使用 Redis 和 memcached 的企業來說,Tair 的這種兼容性無疑是一個巨大的福音,它使得企業可以在一個數據庫中統一管理不同類型的數據,簡化了數據管理的復雜度,提高了數據管理的效率。

(二)多樣的存儲介質

Tair 提供了豐富多樣的存儲介質選擇,以滿足不同用戶在不同場景下的需求。

內存型存儲介質以其超高的性能和低時延脫穎而出,它就像是一位短跑健將,能夠在瞬間完成數據的讀寫操作。在視頻直播、電商秒殺、在線教育等對實時性要求極高的場景中,內存型 Tair 能夠輕松應對高并發的訪問請求,確保用戶體驗的流暢性。在電商秒殺活動中,大量用戶會在同一時刻爭搶有限的商品資源,內存型 Tair 憑借其卓越的性能,能夠快速響應每個用戶的請求,準確地處理商品庫存的扣減等操作,讓用戶能夠在第一時間得知自己是否秒殺成功,極大地提升了用戶的購物體驗。

持久內存型存儲介質則在成本和性能之間找到了一個完美的平衡點,它既具備較高的性價比,又能提供接近內存型的性能。這種存儲介質采用了非易失性內存,通過硬件級持久化確保數據在斷電情況下的完整性,就像是給數據上了一把堅固的保險鎖。在游戲場景中,持久內存型 Tair 得到了廣泛的應用。游戲玩家在游戲過程中的各種操作數據,如角色的位置、等級、裝備等,都需要及時、準確地存儲和讀取。持久內存型 Tair 不僅能夠滿足游戲對數據讀寫性能的要求,還能以相對較低的成本存儲大量的游戲數據,為游戲的穩定運行提供了有力保障。

磁盤型存儲介質則專注于低成本存儲超大規模數據,它就像是一個巨大的倉庫,能夠容納海量的數據。在 Tair 磁盤型產品中,內存用于加速,而磁盤(ESSD/SSD)作為最終的數據存儲介質。磁盤存儲相較于內存存儲成本更加低廉,因此 Tair 磁盤型可以以遠低于純內存存儲的成本,幫助用戶存儲數百 TB 的數據。對于那些對存儲成本和存儲規模有高要求的場景,如大數據分析、溫冷數據存儲等,磁盤型 Tair 無疑是最佳選擇。在大數據分析場景中,企業需要存儲和分析海量的歷史數據,磁盤型 Tair 能夠以較低的成本滿足這一需求,同時通過內存加速技術,也能保證數據分析過程中對數據讀取的性能要求。

(三)卓越的性能表現

在性能表現方面,Tair 與 Redis 開源版相比,猶如一位專業運動員與業余愛好者的差距,優勢明顯。阿里云 Redis 開源版已經能夠為應用程序提供亞毫秒級的響應時延,然而 Tair(內存型)在此基礎上更上一層樓,不僅響應時延更低,而且提供 2 至 3 倍的每秒請求處理能力(QPS)。這意味著 Tair 能夠在更短的時間內處理更多的請求,大大提高了系統的并發處理能力。

在分布式(集群)架構中,阿里云 Redis 開源版及 Tair 均支持由 2 分片擴展至最大 256 分片。相較于 2 分片,256 分片可提供高達 128 倍的請求處理能力,256 分片的分布式(集群)架構可提供高達 7000 萬次 / 秒的低時延請求處理能力。這種強大的擴展能力,使得 Tair 能夠輕松應對各種大規模、高并發的業務場景。以大型社交平臺為例,每天都有數以億計的用戶在平臺上進行各種操作,如發布動態、點贊、評論等,這些操作都會產生大量的數據請求。Tair 憑借其卓越的性能和強大的擴展能力,能夠穩定地處理這些海量的請求,確保社交平臺的流暢運行,讓用戶能夠享受到高效、穩定的社交體驗。

(四)靈活的架構選擇

Tair 提供了多種靈活的架構選擇,以適應不同的業務場景和需求。

高可用架構就像是一位忠誠的衛士,時刻守護著應用程序的正常運行。它提供了快速的故障恢復能力,當主節點出現故障時,備節點能夠在瞬間接管業務,確保服務的連續性,最大程度地減少因故障而導致的業務中斷時間。對于那些對服務可用性要求極高的業務,如金融交易系統、在線支付平臺等,高可用架構是必不可少的。在金融交易系統中,每一筆交易都關系到用戶的資金安全和利益,任何短暫的服務中斷都可能導致嚴重的后果。高可用架構的 Tair 能夠保證交易系統在各種突發情況下都能穩定運行,為用戶提供安全、可靠的交易環境。

分布式(集群)架構則以其強大的擴展性和靈活性著稱,它就像是一個可以無限擴展的城堡,能夠容納各種不同規模和性能需求的業務。這種架構支持搭配出上千種資源規格,幾乎能夠覆蓋所有場景的不同性能與存儲規模需求。當業務量不斷增長,數據量和請求量持續攀升時,分布式(集群)架構的 Tair 可以通過增加分片的方式,輕松實現性能和存儲規模的擴展,滿足業務發展的需求。大型電商平臺在促銷活動期間,如 “雙十一”“618” 等,業務量會呈爆發式增長,此時分布式(集群)架構的 Tair 就能夠發揮其優勢,通過彈性擴展來應對海量的用戶請求,確保電商平臺的穩定運行,讓用戶能夠順利地進行購物。

智能讀寫分離架構是專門為讀多寫少的場景設計的,它就像是一個智能的交通指揮員,能夠合理地分配讀寫請求。在這種架構下,最大支持 9 個只讀節點的擴展能力,能夠對讀請求的增長提供有力支撐。當應用程序面臨大量的讀請求時,智能讀寫分離架構可以將讀請求分配到多個只讀節點上,減輕主節點的壓力,提高系統的整體性能。新聞資訊類網站,每天都會有大量的用戶訪問頁面讀取新聞內容,而寫操作相對較少。智能讀寫分離架構的 Tair 能夠將讀請求均勻地分配到各個只讀節點上,使得網站能夠快速響應用戶的訪問請求,為用戶提供流暢的閱讀體驗。

單節點架構則適用于測試環境或無數據可靠性要求的生產環境,它就像是一個簡單的小工具,使用方便且成本低廉。在這些場景中,單節點架構可以有效降低數據庫的使用成本,同時也能滿足一些簡單業務的需求。在軟件開發過程中,開發人員需要在測試環境中對應用程序進行測試,單節點架構的 Tair 可以快速搭建起來,為開發人員提供一個便捷的測試數據庫,幫助他們及時發現和解決問題。

(五)企業級特性加持

Tair 具備一系列強大的企業級特性,這些特性就像是堅固的盾牌,為企業的數據安全和業務穩定提供了全方位的保障。

半同步功能是 Tair 保障數據可靠性的重要手段之一。開啟該功能后,寫入主節點的數據在傳輸至備節點后才向客戶端返回寫入成功的信號。這就像是給數據傳輸加上了一道保險,相較于異步同步可能存在的 “同步延遲”,Tair 的半同步可避免主節點故障時,因主備同步存在延遲而帶來的部分增量數據損失風險。在金融行業,每一筆資金的變動都至關重要,半同步功能能夠確保資金數據的準確性和完整性,防止因數據丟失而導致的金融風險。

PITR(按時間點恢復數據)功能則為企業提供了一種強大的數據恢復能力,它就像是一臺時光機器,能夠將數據恢復至 7 天內的任意時間點,最小時間粒度為秒。這一功能徹底解決了誤操作帶來的數據損失問題,極大地增強了數據的安全性。當企業因誤刪除數據、錯誤的更新操作等原因導致數據丟失或損壞時,PITR 功能可以幫助企業快速將數據恢復到誤操作之前的狀態,減少因數據丟失而帶來的業務損失。在企業的日常運營中,可能會因為員工的操作失誤而導致重要數據被誤刪,PITR 功能能夠迅速恢復這些數據,確保企業業務的正常進行。

TDE(透明數據加密)功能是 Tair 在數據安全方面的又一重要舉措,它就像是給數據穿上了一層隱形的鎧甲。該功能可基于用戶密鑰對 RDB 數據文件執行加密和解密,提高數據的安全性。在數據泄露事件頻發的今天,企業的數據安全面臨著嚴峻的挑戰。TDE 功能能夠對存儲在磁盤上的數據進行加密,即使數據被非法獲取,沒有正確的密鑰也無法解密,從而有效地保護了企業的數據安全。對于那些涉及敏感信息的企業,如醫療、金融、政府等,TDE 功能更是不可或缺,它能夠滿足企業對數據安全性及合規性的嚴格要求。

三、應用場景解讀

(一)游戲行業

在游戲行業,尤其是大型多人在線游戲(MMO)和競技類游戲中,對實時性和高并發的要求達到了近乎苛刻的程度。每一次玩家的操作,無論是移動、攻擊、釋放技能,還是與其他玩家的交互,都需要及時地反饋到游戲世界中,這就要求游戲服務器能夠在極短的時間內處理大量的請求。

Tair 憑借其超高性能和低時延的特性,成為了游戲行業的理想選擇。它能夠輕松應對每秒數萬甚至數十萬的并發請求,確保游戲的流暢運行,為玩家提供極致的游戲體驗。以一款熱門的 MOBA 游戲為例,在一場激烈的 5V5 對戰中,眾多玩家同時進行各種操作,產生大量的數據請求。Tair 能夠快速處理這些請求,保證玩家的技能釋放能夠即時生效,角色的移動能夠實時反饋在屏幕上,讓玩家在游戲中感受到行云流水般的操作體驗。

此外,Tair 還支持多種數據類型,如字符串、哈希、列表、集合等,這使得它能夠滿足游戲中各種復雜的數據存儲和處理需求。游戲中的玩家角色信息、道具信息、排行榜數據等,都可以通過 Tair 進行高效的管理和存儲。游戲中的排行榜數據需要實時更新和展示,Tair 可以使用有序集合(Zset)數據類型來實現排行榜的功能,通過對玩家的分數進行排序,快速展示出排名靠前的玩家信息。

(二)金融領域

在金融領域,數據的安全和穩定交易是至關重要的,任何數據的丟失或交易的中斷都可能引發嚴重的后果,甚至導致系統性風險。

Tair 在金融場景中發揮著關鍵作用。其強大的企業級特性,如半同步功能、PITR 功能和 TDE 功能,為金融數據的安全和穩定交易提供了全方位的保障。半同步功能確保了數據在主備節點之間的同步,防止了數據丟失的風險;PITR 功能使得金融機構能夠在發生誤操作或數據丟失時,快速將數據恢復到之前的狀態,減少損失;TDE 功能則對存儲在磁盤上的數據進行加密,保護了金融數據的隱私和安全。

在股票交易系統中,每一筆交易都涉及到大量的資金和敏感信息。Tair 的半同步功能可以確保交易數據在主備節點之間的準確同步,防止因主節點故障而導致的交易數據丟失;PITR 功能則可以在交易出現錯誤或數據被誤操作時,將交易數據恢復到正確的狀態,保障了投資者的權益;TDE 功能對交易數據進行加密存儲,防止了數據被竊取或篡改的風險,維護了金融市場的穩定。

(三)廣告業務

在廣告業務中,精準投放和實時數據分析是實現廣告效果最大化的關鍵。廣告商需要根據用戶的行為、興趣、地理位置等多維度數據,實時分析用戶的需求和偏好,從而實現精準的廣告投放,提高廣告的點擊率和轉化率。

Tair 的高性能和強大的數據分析能力,使其成為廣告業務的得力助手。它能夠實時處理海量的用戶數據,快速分析出用戶的行為模式和興趣偏好,為廣告的精準投放提供有力支持。同時,Tair 還支持實時數據的更新和查詢,確保廣告商能夠根據最新的用戶數據及時調整廣告策略。

以一家大型互聯網廣告平臺為例,每天都會產生數億條用戶行為數據。Tair 可以實時收集和處理這些數據,通過對用戶的瀏覽歷史、搜索記錄、點擊行為等數據的分析,精準地判斷用戶的興趣點和需求。當用戶訪問平臺時,Tair 能夠根據用戶的畫像,快速從海量的廣告庫中篩選出最符合用戶興趣的廣告進行展示,大大提高了廣告的精準度和效果。

(四)電商平臺

在電商平臺中,商品緩存和用戶會話管理是提升用戶體驗和保障業務穩定運行的重要環節。

在商品緩存方面,Tair 的高性能內存存儲和靈活的架構選擇發揮了重要作用。電商平臺上的商品信息,如商品名稱、價格、庫存、圖片等,都可以存儲在 Tair 中作為緩存。當用戶訪問商品頁面時,系統首先從 Tair 緩存中讀取商品信息,這樣可以大大減少對后端數據庫的訪問壓力,提高頁面的加載速度。Tair 的分布式(集群)架構能夠輕松應對高并發的訪問請求,確保在促銷活動期間,如 “雙十一”“618” 等,大量用戶同時訪問商品頁面時,依然能夠快速響應,為用戶提供流暢的購物體驗。在 “雙十一” 活動期間,某電商平臺的商品詳情頁每秒會收到數百萬次的訪問請求,Tair 通過分布式(集群)架構,將請求均勻地分配到各個節點上,快速從緩存中讀取商品信息并返回給用戶,使得商品詳情頁的加載速度保持在 1 秒以內,極大地提升了用戶的購物體驗。

在用戶會話管理方面,Tair 可以存儲用戶的登錄狀態、購物車信息、瀏覽歷史等會話數據。用戶在電商平臺上進行購物時,從登錄到添加商品到購物車,再到結算支付,整個過程中產生的會話數據都需要進行有效的管理和存儲。Tair 的高可用架構能夠確保這些會話數據的安全和穩定存儲,即使在系統出現故障時,也能快速恢復,保障用戶的購物流程不受影響。當用戶在購物過程中遇到網絡波動或系統短暫故障時,Tair 的高可用架構可以保證用戶的購物車信息和登錄狀態不會丟失,用戶重新連接后可以繼續之前的購物操作,提高了用戶的購物滿意度。

四、使用教程

(一)創建實例

在阿里云控制臺創建 Tair 實例,操作步驟直觀明了,具體如下:

  1. 登錄阿里云官網,進入控制臺,在產品與服務中搜索 “云數據庫 Tair”,點擊進入 Tair 控制臺頁面。
  2. 在 Tair 控制臺中,點擊 “創建實例” 按鈕,進入實例創建頁面。
  3. 在創建頁面,首先選擇付費方式,包年包月適合長期使用,按量付費則適用于短期需求或業務量波動較大的場景。
  4. 接著選擇地域與主可用區。若已有云服務器 ECS,建議選擇與 ECS 相同的地域和可用區,以實現內網互通,降低網絡延遲。若通過本地設備連接實例,可選擇就近地域。
  5. 選擇專有網絡(VPC)與虛擬交換機。如果需要使用 ECS 連接 Tair 實例,務必選擇與 ECS 相同的 VPC,即便交換機不同,也能實現內網互通。
  6. 對于存儲介質,可根據業務需求選擇內存型、持久內存型或磁盤型。內存型適合對性能要求極高的場景,持久內存型兼顧成本與性能,磁盤型則用于低成本存儲超大規模數據。這里我們選擇內存型。
  7. 選擇版本兼容性,Tair 全面兼容多個流行的 Redis 版本,根據應用程序的實際情況選擇,如 Redis 5.0、6.0 或 7.0。此處我們選擇 Redis 6.0。
  8. 設置密碼,可選擇立即設置,也可在實例創建完成后再進行設置。密碼長度需為 8 - 32 位,且需包含大寫字母、小寫字母、特殊字符和數字中的至少三種,特殊字符支持!@#$%^&*()_+-=。
  9. (可選)若選擇包年包月方式,還需配置實例的購買時長。
  10. 最后,選擇購買數量,默認 1 個。確認所有參數無誤后,點擊 “立即購買” 按鈕。

在確認訂單頁面,閱讀并選中服務協議,根據提示完成支付流程。支付成功后,等待 1 - 5 分鐘,即可在 Tair 管理控制臺中,選擇實例所屬的地域,看到新購買的實例。

(二)連接實例

連接 Tair 實例有多種方式,以下分別介紹通過 DMS、客戶端程序、redis - cli 連接實例的方法:

通過 DMS 連接
  1. 訪問實例列表 ,在上方選擇地域,然后單擊目標實例 ID。
  2. 在頁面右上角,單擊 “登錄數據庫”。
  3. 在跳轉到的 DMS 控制臺,設置登錄方式。
    • 賬號 + 密碼登錄(推薦):分別填寫數據庫賬號和對應的密碼。通常實例包含一個以實例 ID 命名的數據庫賬號(例如 r - bp10noxlhcoim2****),也可以使用該賬號登錄(密碼在創建實例時已設置)。
    • 免密登錄:若實例已開啟免密訪問,選擇該方式無需填寫密碼即可直接登錄。
    • 密碼登錄:使用創建實例時設置的密碼登錄(即以實例 ID 命名的數據庫賬號對應的密碼)。若忘記密碼,可重置密碼。

其他參數可保持默認,單擊 “登錄”。如未將 DMS 服務器的 IP 地址添加至實例的白名單中,系統將彈出對話框提示,需單擊 “設置白名單”,系統會為實例創建一個名為 ali_dms_group 的白名單分組,并將 DMS 服務器的 IP 地址加入該分組中。完成登錄后,即可在 SQL Console 頁簽對應的文本框中輸入并執行命令,例如執行 DBSIZE 命令查詢當前庫有多少個鍵(Key)。?

通過客戶端程序連接

Tair 與原生 Redis 完全兼容,可根據自身應用特點選用任何兼容 Redis 協議的客戶端程序。以 Java 的 Jedis 客戶端為例:

  1. 添加 pom.xml 配置,引入 Jedis 依賴:
    <!-- 導入spring - data - redis -->
    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring - boot - starter - data - redis</artifactId><!-- spring boot 2.0之后默認使用lettuce客戶端, 使用jedis時需要排包 --><exclusions><exclusion><groupId>io.lettuce</groupId><artifactId>lettuce - core</artifactId></exclusion></exclusions>
    </dependency>
    <!-- 導入jedis -->
    <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId>
    </dependency>
  2. 配置連接信息,創建 JedisConnectionFactory 和 RedisTemplate:
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.data.redis.connection.RedisPassword;
    import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
    import org.springframework.data.redis.connection.jedis.JedisClientConfiguration;
    import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
    import org.springframework.data.redis.core.RedisTemplate;
    import redis.clients.jedis.JedisPoolConfig;import java.time.Duration;@Configuration
    public class RedisConfig {@Beanpublic JedisConnectionFactory redisConnectionFactory() {// 連接地址(hostName)和端口(port)在實例詳情頁下方連接信息區域獲取,請根據客戶端網絡環境選擇專有網絡或公網連接RedisStandaloneConfiguration config = new RedisStandaloneConfiguration("r - 8vbwds91ie1rdl****.redis.zhangbei.rds.aliyuncs.com", 6379);// password填寫格式為 賬號:密碼,例如:賬號testaccount,密碼Rp829dlwa,password填寫testaccount:Rp829dlwa// 忘記賬號密碼請在實例詳情頁左側菜單列表點擊賬號管理重置密碼或創建賬號config.setPassword(RedisPassword.of("賬號:密碼"));JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();// 最大連接數, 根據業務需要設置,不能超過實例規格規定的最大連接數。jedisPoolConfig.setMaxTotal(30);// 最大空閑連接數, 根據業務需要設置,不能超過實例規格規定的最大連接數。jedisPoolConfig.setMaxIdle(20);// 關閉testOn[Borrow|Return],防止產生額外的PING。jedisPoolConfig.setTestOnBorrow(false);jedisPoolConfig.setTestOnReturn(false);JedisClientConfiguration jedisClientConfiguration = JedisClientConfiguration.builder().usePooling().poolConfig(jedisPoolConfig).build();return new JedisConnectionFactory(config, jedisClientConfiguration);}@Beanpublic RedisTemplate<String, Object> redisTemplate() {RedisTemplate<String, Object> template = new RedisTemplate<>();template.setConnectionFactory(redisConnectionFactory());template.setKeySerializer(new StringRedisSerializer());template.setValueSerializer(new GenericJackson2JsonRedisSerializer());return template;}
    }
  3. 測試連接,在測試類中注入 RedisTemplate 并進行操作:
    import org.junit.jupiter.api.Test;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.data.redis.core.RedisTemplate;@SpringBootTest
    public class RedisTest {@Autowiredprivate RedisTemplate<String, Object> redisTemplate;@Testvoid test() {try {redisTemplate.opsForValue().set("test_key", "hello world!");System.out.println("連接成功:" + redisTemplate.opsForValue().get("test_key"));} catch (Exception e) {e.printStackTrace();System.out.println("連接出現異常,請根據文檔:" +"https://help.aliyun.com/zh/redis/support/how - do - i - troubleshoot - connection - issues - in - apsaradb - for - redis" +"排查網絡、白名單、賬號密碼問題。" +"也可根據報錯信息查詢文檔:https://help.aliyun.com/zh/redis/support/common - errors - and - troubleshooting");}}
    }

通過 redis - cli 連接

redis - cli 是原生 Redis 自帶的命令行工具,可在 ECS 實例或本地設備上通過 redis - cli 連接 Tair 實例,進行數據管理。以下以在 ECS(Linux)上連接為例:

  1. 登錄 ECS 實例,依次執行以下命令,下載、安裝編譯 redis - cli:
    sudo yum - y install gcc            # 安裝gcc依賴環境
    wget https://download.redis.io/releases/redis - 7.0.0.tar.gz
    tar xzf redis - 7.0.0.tar.gz
    cd redis - 7.0.0 && make
  2. 執行下述命令連接實例:
    src/redis - cli - h hostname - a password - p port

其中,hostname 為實例連接地址,可在控制臺的連接信息區域獲取實例的專有網絡連接地址,例如 r - 8vbwds91ie1rdl****.redis.zhangbei.rds.aliyuncs.com;password 為密碼;port 為端口號,默認為 6379。

連接示例:

src/redis - cli - h r - 8vbwds91ie1rdl****.redis.zhangbei.rds.aliyuncs.com - a TestPassword123 - p 6379
  • 寫入與讀寫數據。執行命令SET bar foo,預計返回OK;執行命令GET bar,預計返回"foo"。

(三)基本操作示例

使用 Python SDK 進行數據讀寫操作,首先需要安裝 Tair Python SDK,通過 pip 命令即可輕松完成安裝:

pip install tair

以下是一個簡單的代碼示例,演示如何使用 Tair Python SDK 進行數據存儲和讀取:?

from tair import Tair# 配置Tair的API端點,這里使用實例的連接地址
tair_endpoint = "r-8vbwds91ie1rdl****.redis.zhangbei.rds.aliyuncs.com"  
# 端口號,默認為6379
port = 6379  
# 密碼
password = "TestPassword123"  # 創建Tair客戶端實例
tair = Tair(endpoint=tair_endpoint, port=port, password=password)  # 數據存儲示例
key = "user:1001"
value = {"name": "Alice", "email": "alice@example.com"}
tair.set(key, value)# 數據檢索示例
retrieved_value = tair.get(key)
print("Retrieved value:", retrieved_value)

在上述代碼中,首先創建了 Tair 客戶端實例,然后使用set方法存儲數據,再使用get方法讀取數據。通過這些簡單的操作,即可實現對 Tair 數據庫的基本讀寫功能。

五、與其他云數據庫對比

(一)性能對比

為了更直觀地展現 Tair 在性能方面的優勢,我們將其與其他類似云數據庫進行了對比測試,測試環境保持一致,包括硬件配置、網絡環境等。以下是在 QPS(每秒查詢率)和時延方面的對比數據圖表:

數據庫類型

QPS(萬次 / 秒)

平均時延(毫秒)

Tair(內存型)

7000

0.1

Redis 開源版

2000

0.3

某競品云數據庫 A

3000

0.25

某競品云數據庫 B

2500

0.2

從圖表中可以清晰地看出,Tair(內存型)在 QPS 方面表現卓越,遠遠超過 Redis 開源版以及其他競品云數據庫。在時延方面,Tair 也展現出了極低的延遲,能夠為應用程序提供更加快速的響應,這使得依賴它的應用程序能夠實現快速響應,為用戶帶來流暢、高效的使用體驗。

(二)功能對比

在功能特性方面,Tair 同樣展現出了獨特的優勢。與其他數據庫相比,Tair 不僅全面兼容 Redis 協議,還在其基礎上進行了功能擴展,提供了更多的數據結構和企業級能力。

功能特性

Tair

Redis 開源版

某競品云數據庫 A

某競品云數據庫 B

兼容性

兼容 Redis 多版本、memcached 1.2

僅原生支持 Redis 協議

部分兼容 Redis

部分兼容 Redis

存儲介質

內存、持久內存、磁盤

主要為內存

內存、磁盤

內存、磁盤

企業級特性

半同步、PITR、TDE 等

部分支持數據加密

支持簡單備份恢復

架構選擇

高可用、分布式、智能讀寫分離、單節點

主從、集群

主從、集群

主從、集群

Tair 的兼容性優勢使其能夠無縫對接基于 Redis 開發的應用程序,降低了技術遷移成本。多樣的存儲介質選擇,讓用戶可以根據業務需求靈活配置,實現成本與性能的最佳平衡。豐富的企業級特性,如半同步、PITR、TDE 等,為數據的安全和穩定提供了全方位的保障,這是其他數據庫所無法比擬的。在架構選擇上,Tair 提供了多種靈活的架構,能夠滿足不同業務場景的需求,而其他數據庫的架構選擇相對較為單一。

六、總結與展望

阿里云云數據庫 Tair 以其卓越的性能、強大的兼容性、多樣的存儲介質、靈活的架構選擇以及豐富的企業級特性,在云數據庫領域樹立了新的標桿。無論是在游戲、金融、廣告還是電商等行業,Tair 都展現出了強大的適應性和優勢,能夠為企業提供高效、穩定、安全的數據管理解決方案。

展望未來,隨著數字化進程的加速,數據量將持續爆發式增長,對數據庫的性能、容量和安全性也將提出更高的要求。相信 Tair 將不斷創新和演進,進一步提升性能,拓展功能,優化成本,為用戶帶來更加優質的服務。同時,Tair 也將在更多的領域得到應用和推廣,助力企業在數字化浪潮中乘風破浪,實現業務的快速發展和創新。

如果您正在尋找一款高性能、高可靠、易使用的云數據庫,不妨嘗試一下阿里云云數據庫 Tair,相信它會給您帶來意想不到的驚喜和價值。

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

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

相關文章

百度大模型免費上線,學AI大模型就選近嶼智能

3月16日&#xff0c;文心大模型4.5和文心大模型X1正式發布&#xff01;目前兩款模型已免費對用戶開放。 文心大模型4.5是百度自主研發的新一代原生多模態基礎大模型&#xff0c;通過多個模態聯合建模實現協同優化&#xff0c;提高多模態理解能力&#xff0c;精進語言能力&#…

PostgreSQL 中實現跨庫連接主要有兩種解決方案

方法一&#xff1a;使用 dblink 擴展 dblink 是 PostgreSQL 的內置擴展&#xff0c;允許在一個數據庫會話中執行遠程 SQL 查詢。 步驟 1&#xff1a;在源數據庫中啟用 dblink 擴展 CREATE EXTENSION IF NOT EXISTS dblink;步驟 2&#xff1a;執行跨庫查詢 -- 簡單查詢示例&…

Qt中的布局

Qt6.8的布局管理系統&#xff0c;用于自動排列部件&#xff1a;水平布局QHBoxLayout、垂直布局QVBoxLayout、網格布局QGridLayout、表單布局QFormLayout 布局(layout)是一種優雅而靈活的方式&#xff0c;可以在其容器內自動排列子部件(child widgets)。每個部件通過sizeHint和s…

Agent成本降低46%:緩存規劃器的思路模板

論文標題 Cost-Efficient Serving of LLM Agents via Test-Time Plan Caching 論文地址 https://arxiv.org/pdf/2506.14852 作者背景 斯坦福大學 動機 大模型能力的飛速進步催收了大量 AI 智能體應用&#xff0c;它們協調多種模型、工具、工作流來解決實際復雜任務。然而…

Vue 3 + Axios 完整入門實戰指南

從入門到深入&#xff0c;手把手教你在 Vue 3 中正確使用 Axios&#xff0c;支持全局掛載、局部分離、使用 proxy 連接場景&#xff0c;適合所有前端小白和實戰設計。 大家好&#xff0c;我是石小石&#xff01;一個熱愛技術分享的開源社區貢獻者&#xff0c;小冊《油猴腳本實戰…

CppCon 2017 學習:Effective Qt: 2017 Edition

這段內容講的是 Qt 容器&#xff08;Qt Containers&#xff09;和標準庫容器&#xff08;STL Containers&#xff09;之間的選擇和背景&#xff1a; 主要觀點&#xff1a; Qt 容器的歷史背景 Qt 自身帶有一套容器類&#xff08;如 QList, QVector, QMap 等&#xff09;&#…

Pandas 核心數據結構詳解:Series 和 DataFrame 完全指南

1. 前言&#xff1a;為什么需要 Pandas 數據結構&#xff1f; 在數據處理和分析中&#xff0c;我們需要高效的方式來存儲和操作結構化數據。Python 原生的列表&#xff08;List&#xff09;和字典&#xff08;Dict&#xff09;雖然靈活&#xff0c;但缺乏針對數據分析的優化。…

使用 Solscan API 的開發指南:快速獲取 Solana 鏈上數據

Solana 生態中有多個區塊瀏覽器&#xff0c;其中 Solscan 提供了功能全面的 API&#xff0c;適用于查詢地址資產、Solana 生態中有多個區塊瀏覽器&#xff0c;其中 Solscan 提供了功能全面的 API&#xff0c;適用于查詢地址資產、交易詳情、合約交互等多種開發場景。相比直接使…

高效工具-libretv

什么是libretv? LibreTV 是一個輕量級、免費的在線視頻搜索與觀看平臺&#xff0c;提供來自多個視頻源的內容搜索與播放服務。無需注冊&#xff0c;即開即用&#xff0c;支持多種設備訪問。項目結合了前端技術和后端代理功能&#xff0c;可部署在支持服務端功能的各類網站托管…

回溯----5.括號生成

題目鏈接 /** 合法括號生成規則: 第一個括號必須是左括號(第一個為右必定無法閉合) 選擇過程中左括號數量必須小于n才可選擇左括號(大于n則一定有括號無法閉合) 左括號數量必須大于右括號數量才可選擇右括號(相等代表所有前驅括號都已閉合) 所需參數: left 記錄已選擇左括號數…

【weaviate】分布式數據寫入之LSM樹深度解析:讀寫放大的權衡

文章目錄 一、LSM樹的設計哲學&#xff1a;寫優化的根本動機1、 傳統B樹存儲的性能瓶頸2、 LSM樹的根本性創新 二、寫入路徑的深度技術分析1、 WAL機制的精密設計2、 MemTable的數據結構3、 刷盤&#xff08;Flush&#xff09;過程的技術細節 三、Compaction策略&#xff1a;LS…

Pygame 大魚吃小魚

【Pygame 大魚吃小魚】是一款基于Python編程語言和Pygame庫開發的趣味游戲。Pygame是Python中一個廣泛用于開發2D游戲的開源模塊集合&#xff0c;它提供了豐富的功能&#xff0c;如窗口管理器、事件處理、圖形繪制等&#xff0c;使得初學者也能快速上手創建游戲。 這段 Python …

【為什么在觸發的事件中修改控件屬性需要使用`Invoke`】

在C#中&#xff0c;特別是在使用Windows Forms或WPF等GUI框架時&#xff0c;控件的屬性和狀態通常只能在創建它們的線程&#xff08;即UI線程&#xff0c;即主線程或用戶界面線程&#xff09;中直接修改。這是由于這些框架的設計基于單線程模型&#xff0c;其中所有與用戶界面&…

Android 當apk是系統應用時,無法使用webView的解決方案

最近在做項目時&#xff0c;遇到了一個無法使用webView的問題&#xff0c;apk是系統應用&#xff0c;點擊加載webView時應用就是崩潰&#xff0c;原因是系統應用時&#xff0c;Android會覺得webView不安全&#xff0c;不避讓加載。 解決的思路就是使用映射&#xff0c;把原生的…

ArcGIS Pro無插件加載(無偏移)天地圖!一次添加長久使用

以前我們介紹過&#xff1a;ArcGIS無插件加載&#xff08;無偏移&#xff09;天地圖。這次我們來介紹ArcGIS Pro中如何添加天地圖。 我們將通過從天地圖官網自己添加服務鏈接并添加至收藏的方式以及應急的方法來做本次的介紹。天地圖的數據主要包括影像、電子地圖、地形圖等。我…

Go堆內存管理

# Go堆內存管理 1. Go內存模型層級結構 Golang內存管理模型與TCMalloc的設計極其相似。基本輪廓和概念也幾乎相同&#xff0c;只是一些規則和流程存在差異。 2. Go內存管理的基本概念 Go內存管理的許多概念在TCMalloc中已經有了&#xff0c;含義是相同的&#xff0c;只是名字…

零售 EDI:Chewy EDI 項目注意事項

在此前的文章《供應商對接Chewy的EDI需求》中&#xff0c;介紹了Chewy的EDI需求&#xff0c;本文主要為大家分享Chewy對于各個業務單據的細節性需求&#xff0c;了解這些細節性注意事項將幫助企業快速基于知行軟件提供的EDI服務與Chewy建立EDI對接。 基于知行之橋EDI系統能夠通…

Android錄制視頻自帶鋪滿多行水印

文章目錄 引言環境要求代碼實現總結 引言 之前做過幾種水印需求&#xff0c;這篇文章是關于使用Android原生庫開發錄制視頻自帶滿幀文字水印。 環境要求 Android 7.0以上Android Studio &#xff0c;官方開發者官網視頻錄制功能參考開源庫PictureSelector的camerax庫 //用到的…

觀遠ChatBI:加速零售消費企業數據驅動的敏捷決策

近年來&#xff0c;隨著國產大模型&#xff08;如DeepSeek&#xff09;的快速發展&#xff0c;企業對智能化數據分析工具的需求日益增長。觀遠數據推出的ChatBI&#xff0c;基于大語言模型&#xff08;LLM&#xff09;打造&#xff0c;旨在通過自然語言交互降低數據分析門檻&am…

鴻蒙NEXT-鴻蒙三層架構搭建,嵌入HMRouter,實現便捷跳轉,新手攻略。(1/3)

接下來&#xff0c;我將手把手帶領大家去完善&#xff0c;搭建一個鴻蒙的三層架構&#xff0c;另實現HMRouter的嵌入。完成后&#xff0c;大家可任意跳轉頁面&#xff0c;在三層架構中&#xff0c;書寫屬于自己的篇章。 第0步&#xff0c;項目與AGC華為控制臺關聯起來 首先AG…