1. 程式人生 > >Redis從入門到高可用,分散式實踐 二(高階資料結構和持久化)

Redis從入門到高可用,分散式實踐 二(高階資料結構和持久化)

慢查詢

這裡寫圖片描述

pipeline

這裡寫圖片描述

釋出訂閱

這裡寫圖片描述

bitmap(點陣圖)

  • string型別,最大512mb
  • 注意setbit偏移量,可能有較大耗時
  • 點陣圖要合理使用

這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述

set和Bitmap對比

這裡寫圖片描述
這裡寫圖片描述

HyperLoglog

這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述

GEO

這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述

127.0.0.1:6379> info memory
# Memory
used_memory:815096
used_memory_human:795.99K
used_memory_rss:7626752
used_memory_peak
:815096 used_memory_peak_human:795.99K used_memory_lua:36864 mem_fragmentation_ratio:9.36 mem_allocator:jemalloc-3.6.0

Redis持久化

這裡寫圖片描述

RDB

SAVE

  • 當資料量大時,save會阻塞
  • 檔案策略 如存在老的RDB檔案,新替換老
  • 複雜度O(N)

這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述

bgsave

這裡寫圖片描述
這裡寫圖片描述

自動RDB

這裡寫圖片描述

最佳配置
save 900 1 
save 300 10 
save 60 10000
dbfilename dump.rdb
dir ./
stop-writes-on
-bgsave-error- yes 中斷寫入 rdbcompression yes 預設啟用壓縮 rdbchecknum yes 預設啟用計算和

自動觸發機制

  1. 全量複製
  2. debug reload
  3. shutdown save
    這裡寫圖片描述

AOF

rdB缺點

這裡寫圖片描述

資料不可控,容易丟失

這裡寫圖片描述

AOF three tactics

always

這裡寫圖片描述

everysec(預設值,故障,有可能丟失)

這裡寫圖片描述

no

這裡寫圖片描述

這裡寫圖片描述

AOF rewrite two ways

  • bgrewriteaof
  • AOF重寫配置

這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述

AOF重寫流程

這裡寫圖片描述

AOF配置

no-appendfsync-on-rewrite
重寫時關閉正常的AOF append (效能和丟失率的選擇)
aof-load-truncated yes 當aof有問題時,我們是否忽略錯誤


這裡寫圖片描述

RDB vs AOF

這裡寫圖片描述

最佳實踐

  • RDB
    • 主從,從‘開’,粒度不要太小
    • 集中管理
  • AOF
    • 開:快取和儲存
    • AOF重寫集中管理 分配伺服器百分之五十到六十的記憶體
    • everysync

    • 小切片 設定最大記憶體4個G
    • 儲存和快取
    • 監控(硬碟,記憶體,負載,網路)
    • 記憶體足夠