Redis 6.0.0 GA已釋出! -antirez

banq發表於2020-05-01

Redis 6是有史以來改變最大的Redis版本,因此即使穩定,也要小心處理,並在投入生產之前對其進行測試,以進行工作量測試。到目前為止,我們從未發現重大問題,但請務必小心。在收集錯誤報告時,我們將準備儘快釋出Redis 6.0.1。
變化如下:
除了穩定性之外,RC1和今天之間還有什麼變化?

1.在某些方面對客戶端快取進行了重新設計,尤其是放棄了快取插槽方法,而只使用鍵名。在分析了替代方案之後,在其他Redis核心團隊成員的幫助下,這種方法最終看起來更好。除此之外,尤其是“廣播模式”,我相信它將成為該功能最流行的使用模式之一。
使用廣播時,伺服器不再嘗試記住每個客戶端請求的金鑰。相反,客戶端訂閱金鑰字首:每當與該字首匹配的金鑰被修改時,它們就會收到通知。這意味著可廣播更多訊息(但僅適用於選定的字首),但伺服器端無需進行任何記憶體操作。此外,現在支援選擇加入/退出模式,因此,對於不使用廣播模式的客戶端,可以將其將快取的內容準確告知伺服器,以減少無效訊息的數量。從根本上說,現在該功能在需要低記憶體模式和需要選擇性(低頻寬)模式時都更好。

2.這是許多使用者的舊請求。現在,Redis支援一種模式,用於複製的RDB檔案會在不再有用時立即刪除。在某些環境中,最好不要將資料儲存在磁碟上,而要儲存在記憶體中。

3. ACL在某些方面更好。首先,有一個新的ACL LOG命令,該命令允許檢視所有違反ACL的客戶端,訪問不應該訪問的命令,不應該訪問的金鑰或嘗試失敗的身份驗證。該日誌實際上位於記憶體中,因此每個外部代理都可以呼叫“ ACL LOG”以檢視發生了什麼。這對於除錯ACL問題非常有用。
但是我的首選功能是重新實現ACL GENPASS。現在,它使用基於SHA256的HMAC,並接受一個可選引數來告訴伺服器要生成多少位不可猜測的偽隨機字串。Redis在啟動時從/ dev / urandom獲得內部金鑰,然後在計數器模式下使用HMAC來生成其他隨機數:這樣,您可以濫用API,並在每次需要時呼叫它,因為它將非常快。是否想為您的應用程式生成無法猜測的會話ID?只需致電ACL GENPASS。依此類推。

4.現在,對PSYNC2(複製協議)進行了改進。Redis現在將能夠修整協議中的最終PING,從而能夠更頻繁地進行部分重新同步,從而使副本和母版更有可能找到共同的偏移。

5.帶有超時的Redis命令現在要好得多:不僅BLPOP和其他以前接受秒的命令現在都能接受十進位制數字,而且實際解析度得到了改進,以使其永遠不會比當前的“ HZ”值更糟,不管客戶端連線的數量是多少。

6. RDB檔案現在可以更快地載入。根據檔案的實際組成(較大或較小的值),您可以期望獲得20/30%的改進。現在,當有許多客戶端連線時,INFO也更快,這是一個長期存在的問題,現在終於消失了。

7.我們有一個新命令STRALGO,它實現了複雜的字串演算法。到目前為止,唯一實現的方法是LCS(最長的公共子序列),LCS是一種重要演算法,用於比較冠狀病毒的RNA(通常比較其他生物的DNA和RNA)。冠狀病毒這件事太大,Redis內部需要保留一些痕跡。

 

相關文章