redis5.0新特性

来源:https://www.cnblogs.com/sky-chen/archive/2019/03/04/10473988.html
-Advertisement-
Play Games

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(re ...


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 查看鍵值占用記憶體

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 如果你要確定文件存在的話然後做些什麼,那麼使用try是最好不過的 如果您不打算立即打開文件,則可以使用os.path.isfile檢查文件 如果path是現有常規文件,則返回true。對於相同的路徑,islink()和isfile()都可以為true 如果你需要確定它是一個文件。 從Python 3 ...
  • 1.數值類型與進位 (1)基本類型 輸出結果: (2)進位 進位轉換 (3)基本運算 舍掉小數 輸出結果: 科學計數法 輸出結果: 2.運算符 (1)算術運算符 (2)比較運算符 (3)賦值運算符 (4)位運算符 我沒用過。。就不寫了。 (5)邏輯運算符 (6)成員運算符 (7)身份運算符 ...
  • ""中文編程"知乎專欄原文" 看到 "國人創造中文編程語言的優勢" 一文的評論後, 此文基於個人視野, 從幾個方面闡述中文編程興起的必然性和展望. 下麵是一些近十幾年中的相關趨勢. 對代碼可讀性的重視將會從大公司向小公司逐漸普及 在這個2010年的 "Quara回答" 中, Google已經把可讀性 ...
  • 方法的定義 如果沒有=和{}包裹的方法體,那麼該方法被隱式申明為抽象(abstract)方法,包含它的類就是抽象類。 當輸入相同類型的參數個數無法確定時,可以使用變長參數,如:def sum(args : Int*) = {for(arg <- args) println(arg)}。 如果方法體直 ...
  • 今天佛了,魔鬼周一,線上教學,有點小累,但還好,今天AC了一道,每日一道,還好達成目標,還以為今天完不成了,最近任務越來越多,如何高效完成該好好思考一下了~最重要的還是學業的複習和預習。 今日興趣新聞: 《流浪地球》中的逃生氣囊球和馬斯克有什麼關係? 鏈接:https://mbd.baidu.com ...
  • 由於最近在剛開始做一個前臺element和mybatisplus的項目,但是在使用nodejs下載vue的腳手架和各種組件時,會經常出現下載失敗的問題,進而導致前臺無法啟動。 在網上查詢之後發現在下載時建議使用國內的淘寶鏡像下載。具體操作就是在原本的命令前加一個c。比如npm install,那麼從 ...
  • 學習一門語言最重要的一步是搭建環境,許多人搭建在搭建環境上撞牆了,就有些放棄的心理了;俗話說,工欲善其事,必先利其器;所以接下來我們進行學習C的第一步搭建環境; 第一步:先解壓我們下載好的VC6.0軟體壓縮包,軟體我會在文章下麵打包。 第二步:雙擊打開我們解壓好的文件夾里的VC6.0完整綠色版.ex ...
  • "CSV" 格式讀寫 Comma Separated Values 有時也稱為字元分隔值,因為分隔字元也可以不是逗號。以 分隔的文件叫csv,以 分隔的叫tsv 需要註意的一點:分隔符 如果文件是其他分隔符,如 ,則需要傳入分隔符類型。 讀取 列表方式讀取 字典方式讀取 寫入 列表方式寫入 字典方式 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...