Valkey 8.1:Redis fork 功能包括效能、記憶體改進和新模組

瓦爾基

已經宣布了 發布新版本«Valkey 8.1», Redis 的一個分支,在過渡到專有許可後誕生,旨在維護原始專案的開放理念。

瓦爾基 8.1 它具有大量的改進和變化, 其主要重點是效能優化,以減少延遲、提高記憶體效率和新的模組化功能。

Valkey 8.1 的主要新功能

最重要的變化 在這個版本中 完全重寫哈希表,既可用於鍵值資料存儲,也可用於結構化資料類型,例如 Hash、Set、Sorted Set。由於這次重新設計, 記憶體使用量已減少:沒有 TTL 的每個鍵減少 20 個位元組, 如果密鑰具有定義的生存期,則最多 30 個位元組。此外,隨機記憶體存取的減少使得單線程 I/O 環境中的效能提高了 10%。

Valkey 8.1 的另一個新功能是,在諸如 KEYS 指令或 叢集中節點之間的金鑰傳輸現在具有快取預加載系統, 這使得下一個密鑰在處理開始之前可用。這種方法透過更好地利用處理器緩存,將鍵查找速度提高了 3,5 倍。

多執行緒 I/O 和 TLS 改進

Valkey 繼續向多線程 I/O 模型過渡。現在, TLS 連線處理在單獨的串流中執行,其接受新連接的能力增加了兩倍。 SSL_pending() 和 ERR_clear_error() 等函數也被隔離到單獨的執行緒中,從而使 SET 操作的效能提高了 10%,GET 操作的效能提高了 22%。

複製已改進,特別是在具有主動 TLS 的環境中,消除了不必要的校驗和等冗餘操作。這使得無碟複製期間的完全同步提高了 18%,並且複製和寫入作業的成本降低了 47%。

有序集和機率類型的最佳化

El ZRANK 指令 對於有序集已經進行了最佳化, 現在速度提高了 45%,而 ZADD 採用了 SIMD 指令 以實現更高的效率。對於機率資料類型,HyperLogLog 的使用得到了改進,只需使用 12 KB 固定內存,並且使用 AVX2 指令可以使 PFMERGE 和 PFCOUNT 操作的性能提高最多 12 倍,BITCOUNT 的性能提高最多 5 倍。

不間斷的主動碎片整理和對註冊表的更多控制

El 主動碎片整理系統也得到了改進 以避免堵塞或延誤。 現在,每個碎片整理週期僅持續 500 微秒, 並實施了反飢餓策略,防止這些任務因長期作業而被推遲。

已經介紹 記錄格式的新配置選項,包括自訂時間格式和記錄長請求和回應的新 COMMANDLOG 模式。此外,LATENCY LATEST 命令已擴展了新的指標,可以更好地查看記錄的峰值和容量延遲。

新功能、模組和支持

瓦爾基 現在允許您執行 SET IFEQ 操作, 其條件是將鍵入目前值。還 引入了對腳本引擎的模組化支持,開啟了透過自訂模組使用 Lua 替代語言的可能性。

在這個版本中 多個模組首次亮相:

  • 搜尋模組(Google): 向量相似性搜尋引擎,非常適合需要低延遲和高吞吐量的機器學習案例。
  • JSON 模組(AWS): 允許直接操作 JSON 文件片段,避免在客戶端完全處理內容。
  • 布隆過濾器模組(AWS): 布隆過濾器的實現,有助於確定集合中元素的可能成員資格,具有機率效率

最後,如果您有興趣能夠了解更多,可以在 以下鏈接。