ApsaraDB for Redis允許使用者自訂部分執行個體參數。通過本文,您可以瞭解相關參數說明及其設定方法。

背景資訊

ApsaraDB for Redis服務與原生的資料庫服務完全相容,設定雲資料庫參數方法和本機資料庫參數設定方法基本類似。參照本例,您可以通過 Redis 管理主控台修改參數。

參數說明

可自訂的執行個體參數如表 1所示。

表 1. 參數說明
參數 說明 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 不支援 支援 不支援 不支援 支援 不支援

更多資訊請參見各版本的官方文檔:

操作步驟

  1. 登入 Redis 管理主控台,定位目標執行個體。
  2. 單擊執行個體 ID 或者管理進入執行個體資訊頁面。
  3. 在左側導覽列中,選擇參數設定
  4. 選擇需要修改的參數,單擊修改
  5. 修改參數值,單擊確定