Redis 8.8補齊陣列資料結構,內建限流與串流訊息釋放機制
Redis終於補上原生陣列(Array)資料結構。過去開發者雖可用List、Hash或JSON等方式處理類似陣列的資料,但Redis 8.8新增的Array是以數字索引存取字串值的通用容器,可動態增減,也可支援稀疏索引。官方提到,Array適合用於需要快速依索引或索引範圍讀寫、保留近期資料的滑動視窗、伺服器端區間聚合與搜尋等情境,像是近期記錄保存、即時感測資料、金融報價或日誌資料處理。
Redis 8.8加入Window Counter Rate Limiter。過去常見的Redis限流設計,多半需要Lua腳本搭配客戶端邏輯,而新版提供INCREX命令,可在計數遞增時處理上限、下限與過期時間,並回傳新的計數值與實際套用的遞增量,讓固定窗口或滑動窗口等限流實作,可更直接地由Redis命令處理。
在串流資料處理方面,Redis 8.8新增XNACK命令。由於串流系統通常會由多個程式分工處理訊息,要是其中一個程式讀取訊息後無法完成處理,過去這筆訊息可能會先留在待處理清單中,其他程式需要再透過回收機制接手,而在新版機制,讓處理失敗的程式主動釋放訊息,使其更快交由其他程式重新處理。
其他更新包括雜湊資料的欄位層級通知,讓系統可接收個別欄位更新、刪除與過期事件,而時間序列資料查詢可在一次命令中同時計算多種聚合結果,減少重複查詢。JSON浮點數陣列可指定不同精度的浮點數格式,例如BF16、FP16、FP32或FP64,以便在記憶體用量與數值精度之間取捨。
官方也在效能上有所著墨,包括一次讀取多筆字串資料時,在啟用輸入輸出執行緒的情況下吞吐量最高提升68%;串流資料在一次讀取100筆資料的條件下,吞吐量最高提升83%。另外,部分有序集合操作效能最高提升74%,以及持久化與完整同步最高提升60%。
Comments (0)