redis5.0新特性


1. redis5.0新特性

1.1. 新的Stream類型

1.1.1. 什么是Stream數據類型

  1. 抽象數據日志
  2. 數據流

1.2. 新的Redis模塊API:Timers and Cluster API

1.3. RDB現在存儲LFU和LRU信息

1.4. 集群管理器從Ruby(redis-trib.rb)移植到C代碼

1.5. 新的sorted set命令:ZPOPMIN/MAX和阻塞變種

1.6. 主動碎片整理V2

1.7. 增強HyperLogLog實現

1.8. 更好的內存統計報告

1.9. 許多帶有子命令的命令現在都有一個Help子命令

1.10. 客戶經常連接和斷開連接時性能更好

1.11. 錯誤修復和改進

1.12. Jemalloc升級到5.1版本

1.13. 安裝和配置redis5.0

1.14. stream命令

  1. XADD
    • 作用:創建一個stream
    • 用法:XADD key ID field string [field string ...]
    • ID:毫秒的unix時間戳 - sequence(同一毫秒的序列號)組成
    • XADD wangzhe * hero luban 創建默認id的key為hero的流數據
  2. XLEN
    • 作用:返回stream中元素的個數
    • 用法:XLEN key
  3. XDEL
    • 作用:刪除id
    • 用法:XDEL key id,返回刪除個數
  4. XRANGER
    • 作用:返回給定ID范圍內的stream數據
    • 用法:XRANGE key start end [COUNT count]
    • 特殊ID:+:最大ID -:最小ID
  5. XREAD
    • 作用:從一個或多個stream讀取數據
    • 用法:XREAD[COUNT count][BLOCK milliseconds] STREAMS key [key ...] ID [ID ...]
    • XREAD count 1 STREAMS LOL 1-1 讀取流LOL中從id為1-1開始的的1條數據
    • XREAD BLOCK 0 STREAMS key $ 永久堵塞,知道流key接收到最新數據,會顯示阻塞時間
  6. XGROUP
    • 作用:創建一個Consumer Group
    • 用法:XGROUP CREATE key groupname ID
  7. XREADROUP
    • 作用:從Consumer Group中讀取數據
    • 用法:XREADGROUP GROUP groupname consumer [COUNT count][BLOCK milliseconds STREAMS key [key ...] ID [ID ...]
    • XREADGROUP GROUP fashi chuanrong STREAMS wangzhe > 表示查詢最新數據

1.15. help特性

  1. XINFO help
  2. PUBSUB help
  3. XGROUP help
  4. ... help
  5. 有子命令的命令才可以用

1.16. redis集群

1.16.1. 創建集群數據存儲文件

  1. mkdir -p /usr/local/redis-cluster
  2. mkdir 5001 5002 5003 5004 5005 5006
  3. 修改redis.conf配置文件,開啟集群配置,aof配置等等
  4. 每個文件夾下配置的區別就在端口,統一命令修改
:1,$s/5001/5002/g
  1. 都啟動完成后,創建六個子節點
    • ruby創建方法:redis-trib.rb create --replicas 1 192.168.4.147:500*
    • 新特性創建方法:redis-cli --cluster create 192.168.4.147:500* --cluster-replicas 1
    • 主/從 = 1 : cluster-replicas
    • redis-cli -c -h 192.168.4.147 -p 5001 以集群的模式進入

1.16.2. 動態添加節點

  1. ruby添加節點:redis-trib.rb add-node 192.168.4.147:5007 192.168.4.147:5001
  2. 新特性添加節點:redis-cli --cluster add-node 192.168.4.147:5007 192.168.4.147:5001
  3. 添加從節點:redis-cli --cluster add-node 192.168.4.147:5008 192.168.4.147:5001
  4. 在5008的client命令行里,cluster replicate 主節點,那么5008會成為該主節點的從節點

1.16.3. 分片

  1. ruby分片方法:redis-trib.rb reshard 192.168.4.147:5007
  2. 新特性分片方法:redis-cli --cluster reshard 192.168.4.147 5007

1.16.4. 刪除節點

1.16.4.1. 刪除從節點

  1. ruby刪除方法:redis-trib.rb del-node 192.168.4.147 5008
  2. 新特性刪除方法:redis-cli --cluster del-node 192.168.4.147 5008 主節點唯一id

1.16.4.2. 刪除主節點(需要先把數據槽移動到其他節點,再刪除主節點,防止數據丟失)

  1. ruby刪除方法:redis-trib.rb reshard 192.168.4.147 5007
  2. 新特性刪除方法:redis-cli --cluster reshard192.168.4.147 5007
  3. done

1.16.5. 新的Sorted Set

  1. ZPOPMAX
    • 作用:刪除返回集合中分值最高的元素
    • 用法:ZPOPMAX key [count]
  2. ZPOPMIN
    • 作用:刪除返回集合中分值最小的元素
    • 用法:ZPOPMIN key [count]
  3. BZPOPMAX
    • 作用:ZPOPMAX的阻塞版
    • 用法:BZPOPMAX key [key ...] timeout
      4 BZPOPMIN
    • 作用:ZPOPMIN的阻塞版
    • 用法:BZPOPMIN key [key ...] timeout

1.16.5.1. 測試

ZADD exam 100 daji
ZADD exam 99 xiaoqiao
ZADD exam 98 zhenji
ZADD exam 97 anqila
ZRANGE exam 0 -1 WITHSCORES 帶分數的打印,從小到大輸出

ZPOPMAX exam輸出最大分數的值,會從元素中刪除

1.17. 碎片整理和內存報告

1.17.1. 應用場景

  1. 在運行期進行自動內存碎片清理,釋放內存空間
  2. 通過內存報告了解整個系統的內存使用情況

1.17.2. 使用

  1. 配置項中找到 activedefrag yes,去掉注解,它下面和它相關的注解都解開

1.17.3. 測試

  1. 使用debug populate 300000 imooc 1000 隨機產生300000個key為imooc開頭的 大小為1000的數據
  2. info memory 查看內存使用情況
  3. MEMORY STATS 查看內存詳情
  4. memory usage imooc:1 查看鍵值占用內存


免責聲明!

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



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