Redis學習之開發規範

key名設計

  • 可讀性和可管理性,以業務名或數據庫名爲前綴防止key衝突,用冒號分隔。例子業務名:表名:id,比如ugc:video:1
  • 簡潔性,保證語義的情況下,儘量縮減key的長度
  • 不要包含特殊字符,空格,換行,單雙引號

value的設計

  • string類型控制在10kb,hash,list,set,zset元素個數不要超過5000

big key 的發現:

redis-cli --bigkeys

debug object key

big key 的刪除 :

scan 遊標遍歷刪除

命令的優化

客戶端的優化

  • 避免多個應用使用同一個redis實例

連接池參數優化

maxIdl 接近maxTotal即可

合理計算連接數

內存優化

 輸出緩衝區的配置

普通客戶端緩衝區:

默認 client-output-buffer-limit normal 0 0 0

默認沒有限制客戶端緩衝

防止大的命令或者monitor

slave客戶端緩衝區:

默認 client-output-buffer-limit slave 256mb 64mb 60

阻塞:主從延遲較高,或者從節點過多

pubsub客戶端緩衝區:

默認 client-output-buffer-limit slave 32mb 8mb 60

阻塞:生產大於消費

複製緩衝區

AOF緩衝區

 內存管理

設置最大內存,超過後由maxmemory-policy控制。

內存回收:惰性刪除,定時刪除。

 

 

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