Redis 3.2.0 is out!

Salvatore Sanfilippo

Redis 3.2.0 正式推出!

原文由 Salvatore Sanfilippo 發布,訂閱此部落格

花了比預期更久的時間,但我們終於做到了,Redis 3.2.0 正式版已經推出,這次的更新對許多 Redis 使用者來說應該都相當實用。這些改動我已經介紹過好幾次了,不過其中最重要的包括:

  • GEO API。你可以用經緯度為任何資料建立索引,並依半徑進行查詢,速度與易用性都和其他 Redis 資料結構一樣。API 文件請見:http://redis.io/commands/#geo。感謝 Matt Stancliff 提供了最初的實作,雖然之後經過重構,但仍是 GEO API 的核心,也感謝 ARDB 的開發者提供了 Matt 所使用的地理索引程式碼。
  • 全新的 BITFIELD 指令可將 Redis 字串當作由多個整數組成的位元陣列來使用,每個整數的大小與偏移位置都可自行指定。它支援遞增與遞減操作,能將這些小(或大)整數當作計數器來運用,並可精細控制溢位的處理方式。http://redis.io/commands/bitfield。感謝 Yoav Steinberg 大力推動這個瘋狂的點子,並激勵我動手實作。
  • Redis Cluster 有許多改進,包括 redis-trib 的重新平衡功能以及更完善的 replica 遷移機制。不過,針對 NAT 環境與 Docker 連接埠轉送的支援,雖然已在「unstable」分支中實作,但基於成熟度考量,並未 backport 到 3.2。
  • Lua 腳本複寫機制的改進。現在可以使用「effects replication」來撰寫包含副作用的腳本。相關文件請見:http://redis.io/commands/EVAL。感謝 Yossi Gottlieb 促成這項功能的加入並協助設計。
  • 現在我們有了一個真正堪用的 Lua 腳本除錯器:https://www.youtube.com/watch?v=IMvRfStaoyM,並已整合至 redis-cli。感謝 Itamar Haber,自 Lua 腳本功能推出以來就一直在撰寫複雜腳本的開發者,他非常期待這項功能並在開發過程中提供了協助。
  • 多虧 Oran Agra 對 SDS 與 Jemalloc size classes 設定的調整,Redis 現在的記憶體使用效率更高了。此外,Matt Stancliff 貢獻了全新的 List 內部表示方式,用來表示大型 list 時,記憶體用量僅為過去的一小部分!
  • 最後,在讀取操作時,slave 與 master 對於哪些 key 已過期終於達成一致了。早就該如此了 :-)
  • SPOP 現在可接受選擇性的 count 參數。感謝 Alon Diamant 提供了最初的實作。之後我為了效能大致重寫了一遍,最終得到了一個相當快速的版本。
  • RDB AUX 欄位。現在你的 RDB 檔案內會包含一些資訊,例如是哪台伺服器產生的、產生日期等等。希望不久後 redis-cli 就能解析這些欄位(預計在 3.2.1)。這只是小小的工作量,但老實說,我也是現在寫這些筆記時才想起來。
  • RDB 載入速度現在更快了。
  • Sentinel 現在可以擴展以監控更多的 master,但應將其視為進階 beta 版而非穩定版,因此在正式部署前,請務必在你的環境中仔細測試,Sentinel 內部有大量程式碼經過更動。
  • 還有許多其他更新,但這份清單已經夠長了。

衷心感謝所有促成此次發布的貢獻者、可愛又給予我們許多鼓勵的 Redis 使用者社群,以及贊助了 3.2.0 大量開發工作的 Redis Labs。

在過去幾週,我們也著手開發了一項有趣的新功能,將會在接下來的 Redis 版本中發布,並會在 5 月 10 至 11 日於舊金山舉行的 RedisConf 2016 上公布,敬請期待!

最後補充一點關於穩定性的說明。我一直不斷強調,軟體的穩定性並非非黑即白。就像粉紅色、黃色和綠色一樣。開玩笑的啦。應該說是一貫的灰色地帶。所以 3.2.0 看起來相當穩固,但畢竟還是新鮮貨。建議逐步開始使用,觀察在你的環境中的表現,並請及時回報任何問題。不過話說回來,由於它已經在 RC 階段停留了很長一段時間,那些迫不及待需要新功能的勇敢使用者們早就已經測試過了。

3.2.0 的完整更新日誌在此:https://raw.githubusercontent.com/antirez/redis/3.2/00-RELEASENOTES

Redis 3.2.0 可至 http://download.redis.io 下載 tarball,或從 GitHub 上的 antirez/redis 儲存庫取得 3.2.0 標籤。

祝使用愉快!

本文章由 muse-spark-1.2-contributor 進行翻譯

留言