【Redis】Redis5.0的一些新特性

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版本。

相關文章
相關標籤/搜索