redis概覽

redis

redis監控指標選擇

connected_clients:68 #連接的客戶端數量

used_memory_rss_human:847.62M

used_memory_peak_human:794.42M

total_connections_received:619104 #服務器已接受的連接請求數量

instantaneous_ops_per_sec:1159 #服務器每秒鐘執行的命令數量

instantaneous_input_kbps:55.85 #redis網絡入口kps

instantaneous_output_kbps:3553.89 #redis網絡出口kps

rejected_connections:0 #因爲最大客戶端數量限制而被拒絕的連接請求數量

expired_keys:0 #因爲過期而被自動刪除的數據庫鍵數量

evicted_keys:0 #因爲最大內存容量限制而被驅逐(evict)的鍵數量

keyspace_hits:0 #查找數據庫鍵成功的次數

keyspace_misses:0 #查找數據庫鍵失敗的次數

redis簡介

redis是一種支持Key-Value等多種數據結構的存儲系統。可用於緩存、事件發佈或訂閱、高速隊列等場景。該數據庫使用ANSI C語言編寫,支持網絡,提供字符串、哈希、列表、隊列、集合結構直接存取,基於內存,可持久化。

對象

場景

數據結構

  • 動態字符串
    *
    * vs string
    * 常數時間獲取長度
    * 杜絕字符串溢出
    * 先檢查,在擴容,最後拼接
    * 減少重新分配次數
    * 預分配
    * 惰性回收
    * 二進制安全
    • 用途
      • redis 字符串
      • AOF緩衝區
      • 客戶端輸入輸出緩衝
    • 總結
  • 鏈表
    • 結構
      • 節點
      • 節點持有
    • 用途
      • 列表底層實現之一
      • 發佈訂閱
      • 慢查詢
      • 定時器
    • 總結
  • 字典
    • 用途
      • 數據庫
      • hash
    • 實現
      • hash表
        • 節點
    • 總結
  • 跳躍表
    • 概念
      • 節點中維持到其它節點的指針,達到快速訪問
    • 應用
      • 有序集合的實現之一
    • 結構
      • 對比
        • 組成
          • 節點
          • list
    • 總結
  • 整數集合
    • 應用
      • 集合鍵實現之一
    • 結構
      *
    • 升級
      • 升級
    • 總結
  • 壓縮列表
    • 應用
    • 概念
      • 組成
        • 節點
    • 總結
  • 對象
    • 說明
    • redis數據類型
      • string
        • 場景
        • 轉換
      • list
        • 場景
          • 子主題 1
          • 子主題 2
        • 轉換
          • 子主題 1
      • hash
        • 場景
          • 組成
            • 壓縮列表
            • hashtable
        • 轉換
          • 轉換
      • set
        • 場景
          • 組成
            • 組成
        • 轉換
          • 轉換
      • zsort(sort set)
        • 場景
          • 組成
            *
        • 轉換
        • 同時使用原因
          • 結構
    • 對象編碼
      • 子主題 1
    • 不同類型對象編碼
      • 子主題 1
    • 內存
      • 引用計數
      • 共享內存
    • 總結
      *

單機數據庫

數據庫

  • 數據庫結構與切換
  • 數據庫鍵空間
  • 過期鍵
    • 判定
    • 刪除策略,redis採用惰性和定期
      • 備份時
        • rdb
          • 不載入過期數據
        • aof
          • 沒被刪除正常複製,過期刪除時追加del命令
        • 主從複製
          • 刪除由主數據庫執行,並向所有數據庫發送顯示del
  • 通知
  • 總結

rdb

  • 簡介
  • 創建載入
  • 總結

aof

  • 簡介
  • 實現
    • 追加
      • 寫入策略
    • 寫入
    • 同步,AOF 緩衝區的作用:目的是維持主線程 AOF 文件的正常寫入,保證在重寫階段,AOF 文件寫入的邏輯不變。
      AOF 重寫緩存區作用:目的是記錄 AOF 重寫開始之後的鍵增刪改的命令。
      這兩個緩衝區缺一不可。具體原因如下:
      AOF 緩衝區的內容會根據 appendfsync 策略的不同而不同,如果 appendfsync=always,那麼每次命令都會立即被刷入到磁盤裏,可能 AOF 緩存區就沒有數據。而 AOF 重寫緩存區一定是從重寫開始之後所有的鍵增刪改的命令。兩個緩衝區從存在意義上來看是完全不一樣的,前者側重於功能,後者更加側重於備份。
      • 過程
  • 總結
    *

事件

  • 文件事件
    • 文件處理器
      • 概念
      • 組成
        • 多路複用程序
  • 時間事件
    • 屬性
    • 分類
      • 定時事件
      • 週期事件
    • 執行
  • 總結
    *

客戶端

  • 總結
    *

服務端

  • 總結
    *

多機數據庫

複製

  • 舊版
    • 同步
      • 步驟
    • 命令傳播
      • 主數據庫被修改導致不同步,主服務器會將不同步的命令就行傳播使主從一致
    • 缺陷
      • 斷線時恢復消耗大
  • 場景
    *
  • 新版
    *
    * 新版流程
    • 部分同步
      • 主從服務器複製偏移量
        *
      • 複製緩衝區
        • 實例
      • 服務器運行id
        *
  • 總結
    *

sentinel

  • 概念
    • 管理集羣主服務器狀態,主服務下線時從中選主,實現高可用
  • 監視
    • 主數據庫,從數據庫,sentinel
    • 監測主觀下線
      *
    • 客觀下線
      *
      * 選舉leader sentinel
      * 將自己的選舉人作爲選舉人推出,初始化時是自己,先到先得,循環選舉,得到半數以上者勝出
  • 故障轉移
    *
    * 主服務器選舉
    * 數據最新,優先級,複製偏移量,id大小
  • 總結
    *

集羣

  • 基本命令
    • cluster meet
  • 節點
    • cluster node
      • cluster link
        • cluster state
  • 槽指派
    *
    *
    * node
    * state
    • 流程
      • 重新分片
  • 複製和故障轉移
    • 故障轉移
  • 總結
    *

獨立功能

發佈訂閱

慢查詢

監視器

*redis學習圖

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章