當前位置: 妍妍網 > 碼農

Garnet:微軟官方開源,.NET驅動的高效能分布式緩存系統

2024-05-14碼農

前言

前不久Redis宣布從 Redis 7.4 開始,將原先比較寬松的 BSD 源碼使用協定修改為 RSALv2 和 SSPLv1 協定,該協定變化意味著Redis不再開源。今天給大家分享一款完全開源(MIT協定)、免費的Redis替代性計畫產品:Garnet。

Redis開源協定詳情:https://github.com/redis/redis?tab=License-1-ov-file#readme

Garnet開源協定詳情:https://github.com/microsoft/garnet?tab=MIT-1-ov-file

Garnet計畫介紹

Garnet是一款由微軟研究院基於.NET開源的高效能、跨平台的分布式緩存儲存資料庫,該計畫提供強大的效能(吞吐量和延遲)、可延伸性、儲存、恢復、集群分片、金鑰遷移和復制功能。

並且無需做任何修改可以與現有的 Redis 客戶端配合使用。

Garnet獨特優勢

協定相容性: Garnet 采用流行的 RESP 路線協定作為起點,這使得可以從當今大多數程式語言( 例如C#中的 StackExchange.Redis )中可用的未經修改的 Redis 客戶端使用 Garnet。

效能優勢: 相比同類開源緩存儲存,Garnet在處理多客戶端連線和小批次請求時表現更優,提供更好的吞吐量和可延伸性,從而節省成本。

低延遲: 在Azure VM上展示了極低的客戶端延遲,通常低於300微秒,對於實際場景至關重要。

技術特點: 基於最新的.NET技術,具有跨平台、可延伸和現代化的特點,易於開發和維護,並在Linux和Windows上實作了最先進的效能。

Garnet計畫原始碼

Garnet效能優勢

Garnet效能測試詳情對比文章閱讀:https://microsoft.github.io/garnet/docs/benchmarking/results-resp-bench

我們預配兩個執行 Linux (Ubuntu 20.04) 的 Azure 標準 F72s v2 虛擬機器(每個虛擬機器 72 個 vcpu,144 GiB 記憶體),並啟用加速 TCP。這個SKU的好處是我們保證不會與另一個VM共置,這將最佳化效能。一台機器執行不同的緩存儲存伺服器,另一台機器專門用於釋出工作負載。

我們使用名為 Resp.benchmark 的基準測試工具來生成所有結果。在撰寫本文時,我們將 Garnet 與最新開源版本的 Redis (v7.2)、KeyDB (v6.3.4) 和 Dragonfly (v6.2.11) 進行了比較。

吞吐量獲取

資料庫大小為 (a) 1024 個鍵和 (b) 2.56 億個鍵時的吞吐量(對數尺度)、不同數量的客戶端會話:

資料庫大小為 (a) 1024 個鍵和 (b) 2.56 億個鍵時的吞吐量(對數規模)、不同的批次大小:

延遲獲取/設定

延遲、不同客戶端會話數量(a)中值、(b)第 99 個百分位和(c)第 99.9 個百分位:

不同批次大小下的延遲(a)中值、(b)第 99 個百分位數和(c)第 99.9 個百分位數:

源碼地址

更多計畫實用功能和特性歡迎前往計畫開源地址檢視👀,別忘了給計畫一個Star支持💖。

GitHub開源地址:https://github.com/microsoft/garnet

線上使用文件:https://microsoft.github.io/garnet/docs

- EOF -

推薦閱讀 點選標題可跳轉

看完本文有收獲?請轉發分享給更多人

推薦關註「DotNet」,提升.Net技能

點贊和在看就是最大的支持❤️