Redis從入門到高可用,分散式實踐 二(高階資料結構和持久化)
阿新 • • 發佈:2019-01-23
慢查詢
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 預設啟用計算和
自動觸發機制
- 全量複製
- debug reload
- 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
- 儲存和快取
- 監控(硬碟,記憶體,負載,網路)
- 記憶體足夠