標籤:war release 企業 協助 command started long tab database
作為一統緩衝江山的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過濾器是一種機率性的資料結構,在快速判斷某些元素是否被包含在一個集合這方便表現的非常好。
Redis 5.0 正式發布!一網打盡所有新特性!