Redis 5.0 正式釋出!一網打盡所有新特性!
作為一統緩存江山的redis,正式釋出了5.0穩定版(stable),激不激動,開不開森?Github連結:https://github.com/antirez/redis/releases/tag/5.0.0 ,讓我們一起看看它帶來了哪些振奮人心的新特性:
官方列舉特性如下:
Redis開源社群版新特性
下面我們對一些重要特性進行更深入的了解。
Streams
全新的資料類型:Streams。官方把這個當做是最重要的改進(The most important user facing improvement is without doubts the introduction
of the new general purpose data type after years: the streams.
)。而且官方提到在發版本的幾個小時前還在修複streams的問題,是以官方也不敢保證release版本是否有一些比較嚴重的BUG(T T),官方還是建議大家在生産環境不要使用streams,這樣可能會有更好的體驗,紮心了(People not using the streams can have probably a better production-ready
experience with Redis 5)。
筆者接下來還會單獨撰文剖析Streams,敬請關注。
cluster manager with c
redis終于還是抛棄了ruby,維護過redis3.x和redis4.x的都知道,主要依賴redis-trib.rb腳本,redis5.0徹底抛棄了它,将叢集管理功能全部內建到完全用C寫的redis-cli中。可以通過指令redis-cli --cluster help檢視幫助資訊。
LOLWUT
redis5.0新增的一個指令,官方對它的描述是:a piece of art inside a database command,翻譯過來可以資料庫指令中的一件藝術品(老外真幽默)。
這個方法源碼注釋如下:
This file implements the LOLWUT command. The command should do something
fun and interesting, and should be replaced by a new implementation at each new version of Redis。源碼連結:https://github.com/antirez/redis/blob/5.0.0/src/lolwut5.c,有興趣的同學可以看看redis作者在5.0版本中實作了些什麼好玩的東西。
有興趣的同學還可以延伸閱讀:http://antirez.com/news/123
Lua改進
lua腳本能更好的傳播到replicas/AOF。replicas也就是以前的slave,大家都知道redis的slave事件前段時間鬧的沸沸揚揚,現在redis官方都改稱replicas了,并且申明除非為了API向後相容,否則不再使用slave這個詞(We no longer use the "slave" word if not for API backward compatibility.)。
lua腳本現在還能支援逾時,并且可以在replica中進入BUSY狀态。
動态HZ
以前redis版本的hz都是固定的,5.0将hz動态化是為了平衡空閑CPU的使用率和響應能力。
其他一些比如HyperLogLog實作改進,RDB檔案新增存儲LFU和LRU資訊,sorted set新增兩個指令ZPOPMIN/MAX,Jemalloc更新到5.1等特性就不一一解讀了。
Redis Enterprise Software新特性
Redis開源許可從AGPL 遷移到将 Apache v2.0 與 Commons Clause 相結合的許可證,下面介紹的這些特性不再是開源軟體,而是源碼可用(source available)。
備注:Commons Clause 的初衷是為了抵禦一些不良行為。如那些使用源代碼,卻不對開源代碼維護做出補償的公司。” ---- Commons Clause 開發者兼 FOSSA 創始人 Kevin Wang。
support docker
現在官方版本正式支援在Docker容器上部署和運作Redis叢集了。有了官方的鏡像,你能非常容易并快速部署幾個容器來運作一個可擴充的,高可用的Redis叢集。想要了解更多請戳連結:https://redislabs.com/redis-enterprise-documentation/getting-started/docker/。
Redis Labs’ Modules
Redis Labs開發了3個子產品,并且被Redis企業軟體(簡稱RS)認證,這些子產品是:
RediSearch:這個子產品将RS變成了一個基于記憶體的分布式全文索引和搜尋引擎,感覺好牛逼的樣子(ES表示不服)。
ReJSON:通過子產品名稱就知道,JSON作為Redis的内置資料類型。
ReBloom: RS具有可擴充的Bloom過濾器,并且是一個資料類型。Bloom過濾器是一種機率性的資料結構,在快速判斷某些元素是否被包含在一個集合這友善表現的非常好。
歡迎工作一到五年的Java工程師朋友們加入Java填坑之路:860113481
群内提供免費的Java架構學習資料(裡面有高可用、高并發、高性能及分布式、Jvm性能調優、Spring源碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料)合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!
---------------------
作者:Java填坑之路
來源:CSDN
原文:
https://blog.csdn.net/yelvgou9995/article/details/83215552版權聲明:本文為部落客原創文章,轉載請附上博文連結!