redis5.0總共增長了12項新特性,以下:html
1.新增長的Stream(流)數據類型,這樣redis就有了6大數據類型,另外五種是String(字符串),Hash(哈希),List(列表),Set(集合)及Zset(sorted set有序集合)。它彌補了其它5種數據類型不能實現的功能,好比List數據類型只能先進先出,或者後進先出,不能從中間去數據,可是Stream能夠實現。redis
1)建立Stream算法
命令:XADDapi
用法:XADD key ID field string (id能夠自定義)ruby
實例分佈式
127.0.0.1:6379> XADD key1 * month month_value #*表明默認id "1563893367304-0" #返回值說明:前面是UNIX毫秒時間戳 後面是序列號 127.0.0.1:6379> XADD key2 0-1 car car_value #自定義ID爲 0-1 "0-1"
2) 查看Stream長度性能
命令:XLEN 返回stream中元素的個數
大數據
用法:XLEN key 優化
127.0.0.1:6379> XLEN key1 (integer) 1
Stream 詳情介紹 : http://www.redis.cn/topics/streams-intro.htmlspa
2.新的Redis模塊api : Times and Cluster api,是一個抽象的集羣消息總線,用於方便開發分佈式系統。
3.RDB(redis datebase)如今用於存儲 LFU(最近最少使用淘汰算法) 和 LRU(最近不常常使用淘汰算法)元數據信息。
4.集羣管理器從ruby(redis-trib.rb)移植到c代碼。之前建立集羣時候須要經過ruby腳原本建立,如今用c代碼從新編寫,不用在額外按照ruby了。
5.新增長有序集合的sorted set4個命令:ZPOPMIN ,ZPOPMAX和它們的阻塞變種。
6.主動內存碎片整理功能version2版本,依賴於Jemalloc內存分配器。
7.加強HyperLogLog實現,這個功能是估算集合基數,redis5優化這個算法來節省空間。
8.更好的內存統計報告(碎片整理和內存報告)。
當咱們在redis裏存一個key時候,redis會給這個key分配一個存儲空間,可是當把這個key刪了,redis是不會當即回收這個已經刪除key所佔用的空間。所以若是反覆增長刪除key的話,會產生不少內存碎片。這就會影響以後申請大塊連續的內存空間,因此進行內存碎片整理頗有必要。
在redis4點時候已經有自動整理內存碎片的功能了,不過那時候功能還屬於實驗階段。下圖是redis4文檔所說
redis5是在redis4的基礎上將內存碎片自動清理功能進行了完善,如今該功能已經成熟。
那麼這個功能有以下做用:
1.在redis運行期間自動進行內存碎片清理,能夠實時釋放內存空間。
2.經過內存報告來了解整個系統的內存使用狀況。
在redis配置文件中查看內存碎片控制相關參數
參數說明:
1) activedefrag:內存碎片功能啓動配置項,當爲yes就表示開啓該功能。
2)active-defrag-ignore-bytes:當內存浪費小於100M就忽略,大於100M就啓動內存碎片整理,這個值能夠設置的。
3)active-defrag-threshold-lower:當內存浪費小於10%就暫時忽略,大於10%就啓動內存碎片整理,這個值能夠設置的。
9.許多帶有子命令的命令如今都有一個help子命令。
10.客戶端斷開和鏈接時候性能更好。
11.錯誤修復和改進。
12.Jemalloc升級到5.1版本。