redis常用參數以及redis內存淘汰機制


參數 說明 Redis 2.8 Redis 4.0
主從 集群 讀寫分離 多可用區主從 主從 集群 讀寫分離 多可用區主從
#no_loose_disabled-commands

設置禁用命令,多個命令通過逗號隔開,目前支持的命令如下:

flushall, flushdb, keys, hgetall, eval, evalsha, script
支持 支持 支持 支持 支持 支持 支持 支持
#no_loose_sentinel-enabled 哨兵兼容模式開關 不支持 不支持 不支持 不支持 支持 支持 支持 支持
hash-max-ziplist-entries

哈希對象同時滿足以下兩個條件時, 使用 ziplist 編碼:

  1. 哈希對象保存的所有鍵值對的鍵和值的字符串長度的字節數都小於hash-max-ziplist-value的值;
  2. 哈希對象保存的鍵值對數量小於hash-max-ziplist-entries的值。
支持 支持 支持 支持 支持 支持 支持 支持
hash-max-ziplist-value

哈希對象同時滿足以下兩個條件時, 使用ziplist編碼:

  1. 哈希對象保存的所有鍵值對的鍵和值的字符串長度的字節數都小於hash-max-ziplist-value的值;
  2. 哈希對象保存的鍵值對數量小於hash-max-ziplist-entries的值。
支持 支持 支持 支持 支持 支持 支持 支持
lazyfree-lazy-eviction lazyfree內存滿后驅逐選項 不支持 不支持 不支持 不支持 支持 支持 支持 支持
lazyfree-lazy-expire lazyfree過期key刪除選項 不支持 不支持 不支持 不支持 支持 支持 支持 支持
lazyfree-lazy-server-del lazyfree內部刪除選項 不支持 不支持 不支持 不支持 支持 支持 支持 支持
list-compress-depth

列表上兩端不被壓縮的節點個數:

  • 0為特殊值(Redis的默認值),表示都不壓縮;
  • 1表示list兩端各有1個節點不壓縮,中間的節點壓縮;
  • 2表示list兩端各有2個節點不壓縮,中間的節點壓縮;
  • 3表示list兩端各有3個節點不壓縮,中間的節點壓縮;
  • 其后依此類推。
不支持 不支持 不支持 不支持 支持 支持 支持 支持
list-max-ziplist-size
  • 取正值表示按照數據項個數來限定每個quicklist節點上的ziplist長度。例如,當該參數配置為5時,每個quicklist節點的ziplist最多包含5個數據項。
  • 取負值表示按照占用字節數來限定每個quicklist節點上的ziplist長度。此時,該值只能取-1到-5這五個值,每個值含義如下。
    • -5:每個quicklist節點上的ziplist大小不能超過64Kb(注:1kb = 1024 bytes);
    • -4:每個quicklist節點上的ziplist大小不能超過32Kb;
    • -3:每個quicklist節點上的ziplist大小不能超過16Kb;
    • -2:每個quicklist節點上的ziplist大小不能超過8Kb(Redis默認值);
    • -1:每個quicklist節點上的ziplist大小不能超過4 Kb。
不支持 不支持 不支持 不支持 支持 支持 支持 支持
maxmemory-policy

設置緩存滿后Redis刪除內容的策略。您可以在如下八種策略中進行選擇:

  • volatile-lru -> 只從設置失效(expire set)的key中選擇最近最少使用的key進行刪除 (推薦)
  • allkeys-lru -> 優先刪除掉最近最少使用的key
  • volatile-lfu -> 只從設置失效(expire set)的key中選擇最不常用的key進行刪除
  • allkeys-lfu -> 優先刪除掉最不常用的key
  • volatile-random -> 只從設置失效(expire set)的key中,隨機選擇一些key進行刪除
  • allkeys-random -> 隨機選擇一些key進行刪除
  • volatile-ttl -> 只從設置失效(expire set)的key中,選出存活時間(TTL)最短的key進行刪除
  • noeviction的密鑰 -> 不刪除任何key,只是在寫操作時返回錯誤。

LRU表示最近最少使用的。LFU表示最不常用的。LRU,LFU和volatile-ttl都是使用近似隨機算法實現的。

支持 支持 支持 支持 支持 支持 支持 支持
notify-keyspace-events

notify-keyspace-events的參數可以是以下字符的任意組合,它指定了服務器該發送哪些類型的通知。

  • 字符:發送的通知
  • K:鍵空間通知,所有通知以__keyspace@<db>__為前綴
  • E:鍵事件通知,所有通知以__keyevent@<db>__為前綴
  • g:DEL、EXPIRE、RENAME等類型無關的通用命令的通知
  • l:列表命令的通知
  • s:集合命令的通知
  • h:哈希命令的通知
  • z:有序集合命令的通知
  • x:過期事件。每當有過期鍵被刪除時發送
  • e:驅逐(evict)事件。每當有鍵因為maxmemory政策而被刪除時發送
  • A:參數g$lshzxe的別名
支持 不支持 不支持 不支持 支持 不支持 不支持 不支持
set-max-intset-entries

當Set集合內的數據符合以下條件時,會使用intset編碼:

  1. 當集合內所有數據都是字符對象;
  2. 都是基數為10的整數,范圍為64位有符號整數。
支持 支持 支持 支持 支持 支持 支持 支持
slowlog-log-slower-than 設置是否記錄慢查詢日志:
  • 當取值為負時,不記錄任何操作;
  • 當取值為0時記錄所有操作;
  • 當取值為正時,只有當操作執行時間大於設置值,操作才被記錄(單位為微秒)。
支持 支持 支持 支持 支持 支持 支持 支持
slowlog-max-len 慢日志最多保存記錄條數。 支持 支持 支持 支持 支持 支持 支持 支持
zset-max-ziplist-entries

排序集合對象同時滿足以下兩個條件時, 使用ziplist編碼:

  1. 排序集合對象保存的所有鍵值對的鍵和值的字符串長度的字節數都小於zset-max-ziplist-value的值;
  2. 排序集合對象保存的鍵值對數量小於zset-max-ziplist-entries的值。
支持 支持 支持 支持 支持 支持 支持 支持
zset-max-ziplist-value

排序集合對象同時滿足以下兩個條件時, 使用ziplist編碼:

  1. 排序集合對象保存的所有鍵值對的鍵和值的字符串長度的字節數都小於zset-max-ziplist-value的值;
  2. 排序集合對象保存的鍵值對數量小於zset-max-ziplist-entries的值。
支持 支持 支持 支持 支持 支持 支持 支持
list-max-ziplist-entries

鏈表對象同時滿足以下兩個條件時, 使用ziplist編碼:

  1. 鏈表對象保存的所有元素的字符串長度的字節數都小於list-max-ziplist-value的值;
  2. 鏈表集合對象保存的元素數量小於list-max-ziplist-entries的值。
支持 支持 支持 支持 不支持 不支持 不支持 不支持
list-max-ziplist-value

鏈表對象同時滿足以下兩個條件時, 使用ziplist編碼:

  1. 鏈表對象保存的所有元素的字符串長度的字節數都小於list-max-ziplist-value的值;
  2. 鏈表集合對象保存的元素數量小於list-max-ziplist-entries的值。
支持 支持 支持 支持 不支持 不支持 不支持 不支持
cluster_compat_enable redis cluster兼容模式 不支持 支持 支持 支持 不支持 支持 支持 支持
script_check_enable 檢查lua腳本key是否在相同slot 不支持 支持 不支持 支持 不支持 支持 不支持 支持

主要介紹 maxmemory-policy函數內存淘汰機制,介紹redis2.8版本和4.0版本的是否支持


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM