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


redis5.0總共增加了12項新特性,如下:

   1.新增加的Stream(流)數據類型,這樣redis就有了6大數據類型,另外五種是String(字符串),Hash(哈希),List(列表),Set(集合)及Zset(sorted set有序集合)。它彌補了其它5種數據類型不能實現的功能,比如List數據類型只能先進先出,或者后進先出,不能從中間去數據,但是Stream可以實現。

  1)創建Stream

    命令:XADD

    用法:XADD key ID field string  (id可以自定義)

實例

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.html

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM