Dragonfly,一個聲稱可以更快替代 Redis 和 Memcached 的項目

發布的消息是 第一個版本已經可用 內存數據緩存系統 Dragonfly,提供對 Memcached 和 Redis 協議的支持, 但它允許查詢以更高的性能和更少的內存消耗運行。

該系統以鍵/值格式處理數據,可用作輕量級解決方案,以加速負載較重的站點、在 DBMS 中緩存慢查詢以及在 RAM 中緩存中間數據。

BSL 由 MySQL 的聯合創始人提出 作為開放核心模型的替代方案。 BSL 的本質是擴展功能代碼最初是可以修改的,但有一段時間可以免費使用,需要附加條件,需要購買商業許可證才能繞過。

Dragonfly 項目的附加許可條款要求僅在 2.0 年 1 月 2027 日將代碼轉換為 Apache XNUMX 許可。在此之前,許可僅允許使用代碼來確保其服務和產品的運行,但禁止用於創建充當 Dragonfly 附加組件的付費云服務。

蜻蜓 號稱是世界上最快的內存存儲系統, 根據開發人員和基準。 與 Redis 相比,Dragonfly 實現了 25 倍的性能提升 在典型工作負載下內存消耗減少 3 倍。 單台 Dragonfly 服務器每秒可以處理數百萬個請求,例如在 Amazon EC2 c6gn.16xlarge 環境中,實現了每秒 3,8 萬個請求的吞吐量。

在 5 GB 存儲測試中,Dragonfly 需要的內存比 Redis 少 30%. 在使用“bgsave”命令創建快照的過程中,內存消耗增加了,但是在高峰期,它的維護量幾乎是Redis中的三倍,而且快照寫入操作本身要快得多(在測試中,在蜻蜓在 30 秒內,Redis - 在 42 秒內)。

多線程架構實現高性能 沒有共享資源( shared-nothing ),這意味著每個線程都附加了一個具有自己數據的單獨且獨立的控制器,無需互斥鎖或自旋鎖即可工作。 輕量級 VLL 鎖用於確保處理多個鍵時的原子性。 為了在內存中有效地存儲信息,使用了dashtable結構,它實現了一種分區哈希表。

中可用的功能 第一個版本突出了對 RESP2 協議和 130 個 Redis 命令的支持,大致對應 Redis 2.8 版本的功能。

另外, Dragonfly 支持除 CAS 之外的所有 Memcached 命令 (驗證和設置),提供對創建快照的異步操作的支持,提供可預測的內存消耗,提供內置的 Lua 5.4 解釋器,並支持哈希、集合和列表等複雜數據類型(ZSET、HSET、LIST、SETS和字符串)。

另外,緩存模式可用,其中一旦空閒內存耗盡,舊數據將自動替換為新數據。 在數據被認為相關的生命週期內,可以鏈接到數據。

存儲狀態可以在後台刷新到磁盤,以便在重新啟動後恢復。 為了管理系統,提供了一個 HTTP 控制台(綁定到 TCP 端口 6379)和一個返回 Prometheus 兼容指標的 API。 在未來的版本中,我們計劃擴展對 Redis 命令的支持並實現複製存儲以進行故障轉移和負載平衡的能力。

最後,如果您有興趣進一步了解它,您應該知道 Dragonfly 代碼是用 C/C++ 編寫的,並且是在 BSL 許可(Business Source License)下分發的。

您可以諮詢該項目 在下面的鏈接中。


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責資料:AB Internet Networks 2008 SL
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。