ApsaraDB for Redis allows you to modify specific instance parameters. This topic describes the parameters that are supported in different engine versions and architectures.

Precautions

  • Some parameters are not supported in earlier minor versions. If your instance is of an earlier minor version, an error message may appear when you configure the parameters. For more information about how to update the minor version, see Update the minor version.
  • After you submit the modification for specific parameters, your instance is automatically restarted. The instance experiences transient connections that last for a few seconds each during the restart. On the page for modifying parameters in the ApsaraDB for Redis console, the Restart and Take Effect column indicates whether a restart is required for the modification to take effect. For more information, see Modify the parameters of an ApsaraDB for Redis instance.

Supported parameters and descriptions

The following items describe the comments that are used in the tables of this topic:

  • The ✔️ symbol indicates that the major version or instance architecture supports the parameter.
  • The ❌ symbol indicates that the major version or instance architecture does not support the parameter.
Note

Parameter Description Major version and instance architecture
Redis 5.0 Redis 4.0 Redis 2.8
#no_loose_audit-read-enabled
Specifies whether to enable read request audit. After you enable this feature, you can view information about read requests in the audit logs. Default value: no. Valid values:
  • yes: enables read request audit.
  • no: disables read request audit.

Standard

Cluster ✔️

Read/write splitting ✔️

Standard ❌

Cluster ✔️

Read/write splitting ✔️

Standard ❌

Cluster ✔️

Read/write splitting ✔️

#no_loose_check-whitelist-always
Specifies whether to check that a client IP address is included in a whitelist of an ApsaraDB for Redis instance if password-free access is enabled in a virtual private cloud (VPC). If you set this parameter to yes, the whitelist still takes effect for password-free access over a VPC. Default value: no. Valid values:
  • yes: checks whether a client IP address is included in the whitelist.
  • no: does not check whether a client IP address is included in the whitelist.

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

#no_loose_disabled-commands

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

#no_loose_sentinel-enabled
Specifies whether to enable the Sentinel-compatible mode. Default value: no. Valid values:
  • yes: enables the Sentinel-compatible mode.
  • no: disables the Sentinel-compatible mode.

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

#no_loose_ssl-enabled
Specifies whether to enable SSL encryption. Default value: no. Valid values:
  • yes: enables SSL encryption.
  • no: disables SSL encryption.

Standard ❌

Cluster ✔️

Read/write splitting ✔️

Standard ❌

Cluster ✔️

Read/write splitting ✔️

Standard ❌

Cluster ✔️

Read/write splitting ✔️

#no_loose_statistics-cmds
  • #no_loose_statistics-cmds: specifies the commands whose statistics you want to collect. The source IP addresses from which the commands are issued and the frequencies at which the commands are run are collected. This parameter is empty by default, which indicates that no statistics are collected. Separate multiple commands with commas (,).
  • #no_loose_statistics-ip-enable: specifies whether to enable collection of statistics about IP addresses or whether to record IP addresses of established connections. Default value: no. Valid values: yes and no.
  • #no_loose_statistics-keys: specifies the keys whose statistics you want to collect. The source IP addresses from which and the frequencies at which these keys are queried or updated are collected. This parameter is empty by default, which indicates that no statistics are collected. Separate multiple keys with commas (,).
Note
  • To prevent performance degradation, we recommend that you do not specify an excessive number of commands and keys for the #no_loose_statistics-cmds and #no_loose_statistics-keys parameters and make sure that these parameters are enabled only when you want to troubleshoot issues or perform Q&M tasks.
  • If you want to collect the preceding statistics, you must also enable the audit log feature. Statistics are collected at an interval of 5 seconds. For more information about the audit log feature, see Enable a new version of the audit log feature.
  • You can download the audit logs in the Log Service console and use keywords to find the logs that you want to view. A type value of 7 indicates the queries per second (QPS) of IP addresses, a type value of 8 indicates the connection information of IP addresses, a type value of 9 indicates the key information, and a type value of 10 indicates the command information. For more information about how to download audit logs, see FAQ.

Standard ❌

Cluster ✔️

Read/write splitting ✔️

Standard ❌

Cluster ✔️

Read/write splitting ✔️

Standard ❌

Cluster ✔️

Read/write splitting ✔️

#no_loose_statistics-ip-enable

Standard ❌

Cluster ✔️

Read/write splitting ✔️

Standard ❌

Cluster ✔️

Read/write splitting ✔️

Standard ❌

Cluster ✔️

Read/write splitting ✔️

#no_loose_statistics-keys

Standard ❌

Cluster ✔️

Read/write splitting ✔️

Standard ❌

Cluster ✔️

Read/write splitting ✔️

Standard ❌

Cluster ✔️

Read/write splitting ✔️

#no_loose_tls-min-version
Specifies the earliest Transport Layer Security (TLS) version supported by the instance. Default value: TLSv1. Valid values:
  • TLSv1
  • Tlsv1.1
  • TLSv1.2

Standard ❌

Cluster ✔️

Read/write splitting ✔️

Standard ❌

Cluster ✔️

Read/write splitting ✔️

Standard ❌

Cluster ✔️

Read/write splitting ✔️

cluster_compat_enable
Specifies whether to enable support for the syntax of native Redis clusters. Default value: 1. Valid values:
  • 0: disables support for the syntax of native Redis clusters.
  • 1: enables support for the syntax of native Redis clusters.

Standard ❌

Cluster ✔️

Read/write splitting ✔️

Standard ❌

Cluster ✔️

Read/write splitting ✔️

Standard ❌

Cluster ✔️

Read/write splitting ✔️

max_session_processing

Specifies the maximum number of pending requests that are allowed per connection. If a proxy node forwards requests from a client to a data node but does not receive a response from the data node, these requests are pending. This parameter is used to prevent pending requests that are caused by capability differences between the frontend and backend of proxy nodes. This avoids an increase in memory usage.

Standard ❌

Cluster ✔️

Read/write splitting ✔️

Standard ❌

Cluster ✔️

Read/write splitting ✔️

Standard ❌

Cluster ✔️

Read/write splitting ✔️

ptod_enabled
Specifies whether to pass through client IP addresses to data nodes by using proxy nodes. Default value: 0. Valid values:
  • 0: does not pass through client IP addresses to data nodes.
  • 1: passes through client IP addresses to data nodes.

Standard ❌

Cluster ✔️

Read/write splitting ✔️

Standard ❌

Cluster ✔️

Read/write splitting ✔️

query_cache_enabled Specifies whether to enable the proxy query cache feature. For more information, see Use proxy query cache to address issues caused by hotkeys. Default value: 0. Valid values:
  • 0: disables the proxy query cache feature.
  • 1: enables the proxy query cache feature.
Notice
  • Only performance-enhanced instances of ApsaraDB for Redis Enhanced Edition (Tair) deployed in the Singapore (Singapore) region support this parameter. You must update these instances and proxy nodes to the latest minor version before you can use this parameter. For more information, see Performance-enhanced instances.
  • The key-value pairs of the hotkeys cached on proxy nodes are not updated within the validity period. Therefore, make sure that your business supports eventual consistency of data within the validity period.

Standard ❌

Cluster ✔️

Read/write splitting ❌

query_cache_expire Specifies the proxy query cache mode. Default value: 0. Valid values:
  • 0: caches data of only the hotkeys pushed by data shards.
  • 1: caches data of all keys. The cached keys are evicted based on the Least Recently Used (LRU) algorithm.
Notice
  • Only Performance-enhanced instances of ApsaraDB for Redis Enhanced Edition (Tair) deployed in the Singapore (Singapore) region support this parameter. You must update these instances and proxy nodes to the latest minor version before you can use this parameter.
  • The maximum cache space of each node is 100 MB per thread. Therefore, if this parameter is set to 1, the proxy nodes evict keys based on the LRU algorithm. This may reduce the cache hit ratio and degrade overall performance.

Standard ❌

Cluster ✔️

Read/write splitting ❌

query_cache_mode Specifies the validity period of cached data. Unit: milliseconds. Default value: 1000. Valid values: 100 to 60000.
  • If the cached data is modified within the validity period, the modified data is not synchronized to the cache. In this case, dirty data is returned for duplicate read requests until the cache expires.
  • You must evaluate the value of this parameter based on your business requirements and tolerance for dirty data. If the value is smaller than required, the cache hit ratio is reduced. If the value is greater than required, the client reads dirty data for an extended period of time.
Note Only Performance-enhanced instances of ApsaraDB for Redis Enhanced Edition (Tair) deployed in the Singapore (Singapore) region support this parameter. You must update these instances and proxy nodes to the latest minor version before you can use this parameter.

Standard ❌

Cluster ✔️

Read/write splitting ❌

readonly_lua_route_ronode_enable
Specifies whether to enable Lua scripting on read replicas. Default value: 0. Valid values:
  • 0: disables Lua scripting. Lua scripts are processed by master nodes instead of read replicas.
  • 1: enables Lua scripting. Lua scripts that include only read requests are forwarded to read replicas.

Standard ❌

Cluster ❌️

Read/write splitting ✔️

Standard ❌

Cluster ❌️

Read/write splitting ✔️

read_request_only_ronode_whenrwsplit_enable
Specifies whether to enable unidirectional forwarding for requests from accounts that have read-only permissions. Default value: 0. Valid values:
  • 0: disables unidirectional forwarding. Requests from accounts that have read-only permissions are forwarded based on weights to all nodes including master nodes.
  • 1: enables unidirectional forwarding. Requests from accounts that have read-only permissions are forwarded only to read replicas.

Standard ❌

Cluster ❌️

Read/write splitting ✔️

Standard ❌

Cluster ❌️

Read/write splitting ✔️

Standard ❌

Cluster ❌️

Read/write splitting ✔️

rt_threshold_ms
Specifies the threshold of slow logs for a proxy node. Unit: milliseconds. If the proxy node processes a request for a period of time longer than the specified threshold, the request is recorded in a slow log.
Note This period of time starts when the proxy node sends a request to the data node and ends when the proxy node receives the response.

Standard ❌

Cluster ✔️

Read/write splitting ✔️

Standard ❌

Cluster ✔️

Read/write splitting ✔️

Standard ❌

Cluster ✔️

Read/write splitting ✔️

script_check_enable
Specifies whether to check that the keys used in Lua scripts are mapped to the same slot. Default value: 1. Valid values:
  • 0: does not check whether the keys are mapped to the same slot.
  • 1: checks whether the keys are mapped to the same slot.

Standard ❌

Cluster ✔️

Read/write splitting ✔️

Standard ❌

Cluster ✔️

Read/write splitting ✔️

Standard ❌

Cluster ✔️

Read/write splitting ✔️

transfer_subscrible_to_psubscrible_enable
Specifies whether to enable the feature of converting SUBSCRIBE to PSUBSCRIBE. Default value: 0. Valid values:
  • 0: disables this feature. Proxy nodes cannot convert SUBSCRIBE to PSUBSCRIBE.
  • 1: enables this feature. Proxy nodes can convert SUBSCRIBE to PSUBSCRIBE.
    Note If you use PUB/SUB commands in Lua scripts and the channel to which you have subscribed cannot receive messages, you can enable this feature to fix this issue.

Standard ❌

Cluster ✔️

Read/write splitting ✔️

Standard ❌

Cluster ✔️

Read/write splitting ✔️

appendonly
Specifies whether to enable append-only file (AOF) persistence for master nodes. Default: yes. Valid values:
  • yes: enables AOF persistence.
  • no: disables AOF persistence.

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

client-output-buffer-limit pubsub
Specifies the output buffer limits of publisher and subscriber clients. The clients are disconnected when the specified limits are reached. Specify a value for this parameter in the following format: <hard limit> <soft limit> <soft seconds>. Default value: 33554432 8388608 60.
  • <hard limit>: disconnects a client if the output buffer of the client is larger than or equal to the hard limit value. The hard limit value is measured in bytes.
  • <soft limit> and <soft seconds>: disconnect a client if both of the following two conditions are met. One of the conditions is that the output buffer of the client is larger than or equal to the soft limit value. The other condition is that the situation lasts for a period of time longer than or equal to the soft seconds value. The soft limit value is measured in bytes. The soft seconds value is measured in seconds.

Standard ✔️

Cluster ✔️️️️️

Read/write splitting ✔️

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

dynamic-hz
Specifies whether to enable a dynamic hz value. Default value: yes. Valid values:
  • yes: enables a dynamic hz value.
  • no: disables a dynamic hz value.

Standard ✔️

Cluster ❌

Read/write splitting ❌

hash-max-ziplist-entries
Specifies the maximum number of key-value pairs stored in a hash. Ziplist encoding is used only if both of the following conditions are met:
  • The keys and values of key-value pairs stored in the hash are all smaller than the value of the hash-max-ziplist-value parameter. The keys and values are measured in bytes.
  • The number of key-value pairs stored in the hash is smaller than the value of the hash-max-ziplist-entries parameter.

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

hash-max-ziplist-value
Specifies the maximum size of the keys and values of key-value pairs stored in a hash. Ziplist encoding is used only if both of the following conditions are met:
  • The keys and values of key-value pairs stored in the hash are all smaller than the value of the hash-max-ziplist-value parameter. The keys and values are measured in bytes.
  • The number of key-value pairs stored in the hash is smaller than the value of the hash-max-ziplist-entries parameter.

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

hz
Specifies how frequently tasks are performed in the background. For example, you can specify how frequently tasks are performed to evict expired keys. Valid values: 1 to 500. The default value is 10, which specifies that each task is performed 10 times per second.
Note A higher value results in higher CPU consumption but allows the system to delete expired keys and close timeout connections more frequently. We recommend that you specify a value smaller than or equal to 100.

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

lazyfree-lazy-eviction
Specifies whether to enable the eviction feature based on the lazyfree mechanism. Default value: no. Valid values:
  • yes: enables the eviction feature.
  • no: disables the eviction feature.

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

lazyfree-lazy-expire
Specifies whether to delete expired keys based on the lazyfree mechanism. Default value: yes. Valid values:
  • yes: deletes expired keys.
  • no: does not delete expired keys.

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

lazyfree-lazy-server-del
Specifies whether to asynchronously delete data based on the lazyfree mechanism for an implicit DEL operation. Default value: yes. Valid values:
  • yes: asynchronously deletes data.
  • no: does not asynchronously delete data.

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

lazyfree-lazy-user-del Specifies whether to asynchronously delete data based on the lazyfree mechanism when a user runs the DEL command. Default value: yes. Valid values:
  • yes: asynchronously deletes data.
  • no: does not asynchronously delete data.
list-compress-depth
Specifies the number of nodes that are not compressed at both ends of a list. Default value: 0. Valid values: 0 to 65535.
  • 0: does not compress nodes of a list.
  • A value in the range of 1 to 65535: does not compress the specified number of nodes at both ends of a list but compresses in-between nodes.

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

list-max-ziplist-entries

Specifies the maximum number of elements stored in a list. Ziplist encoding is used only if both of the following conditions are met:

  • The elements stored in the list are all smaller than the value of the list-max-ziplist-value parameter. The elements are measured in bytes.
  • The number of elements stored in the list is smaller than the value of the list-max-ziplist-entries parameter.

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

list-max-ziplist-value

Specifies the maximum size of the elements stored in a list. Ziplist encoding is used only if both of the following conditions are met:

  • The elements stored in the list are all smaller than the value of the list-max-ziplist-value parameter. The elements are measured in bytes.
  • The number of elements stored in the list is smaller than the value of the list-max-ziplist-entries parameter.

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

list-max-ziplist-size
  • Specifies the maximum size of each ziplist in a quicklist. A positive number indicates the maximum number of elements in each ziplist of a quicklist. For example, if you set this parameter to 5, each ziplist of a quicklist can contain a maximum of five elements.
  • A negative value indicates the maximum number of bytes in each ziplist of a quicklist. Default value: -2. Valid values:
    • -5: specifies that each ziplist of a quicklist cannot exceed 64 KB.
    • -4: specifies that each ziplist of a quicklist cannot exceed 32 KB.
    • -3: specifies that each ziplist of a quicklist cannot exceed 16 KB.
    • -2: specifies that each ziplist of a quicklist cannot exceed 8 KB.
    • -1: specifies that each ziplist of a quicklist cannot exceed 4 KB.

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

maxmemory-policy
Specifies the policy used to evict keys if memory is exhausted. LRU means least recently used. LFU means least frequently used. LRU, LFU, and time-to-live (TTL) policies are implemented by using approximation and randomized algorithms. Valid values:
  • volatile-lru: evicts the LRU keys among keys with an expiration time.
  • allkeys-lru: evicts the LRU keys among all keys.
  • volatile-lfu: evicts LFU keys among keys with an expiration time.
  • allkeys-lfu: evicts LFU keys among all keys.
  • volatile-random: randomly evicts keys among keys with an expiration time.
  • allkeys-random: randomly evicts keys among all keys.
  • volatile-ttl: evicts the key that has the shortest TTL among keys with an expiration time.
  • noeviction: does not evict keys, but returns error messages for write operations.

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

notify-keyspace-events
Specifies the types of events of which the server can notify clients. The value of this parameter is a combination of the following characters:
  • K: keyspace events. All notifications are published with a __keyspace@<db>__ prefix.
  • E: keyevent events. All notifications are published with a __keyevent@<db>__ prefix.
  • g: generic events that are not related to specific commands, such as DEL, EXPIRE, and RENAME.
  • $: events of string commands.
  • l: events of list commands.
  • s: events of set commands.
  • h: events of hash commands.
  • z: events of sorted set commands.
  • x: events of expired keys. An expiration event is triggered when an expired key is deleted.
  • e: eviction events. An eviction event is triggered when a key is evicted for maxmemory.
  • A: the alias for g$lshzxe.
Note The specified value must include at least K or E. Otherwise, no events are triggered.

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

set-max-intset-entries
The maximum number of data entries in a set to support intset encoding. A set uses intset encoding when the following conditions are met:
  • The number of entries in the set is smaller than or equal to the value of the set-max-intset-entries parameter.
  • The set contains only radix-10 integers in the range of 64-bit signed integers.

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

slowlog-log-slower-than

Specifies the threshold to log slow queries. When an operation is executed for a period of time that exceeds the specified threshold, the operation is logged. Unit: microseconds. Valid values: 10000 to 10000000. Default value: 20000.

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

slowlog-max-len

The maximum number of entries that can be stored in the slow log. Valid values: 100 to 10000. Default value: 1024.

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

stream-node-max-bytes
The maximum amount of memory that each macro node in a stream can consume. Valid values: 0 to 999999999999999. Unit: bytes.
Note A value of 0 indicates that the amount of memory that each macro node can consume is unlimited.

Standard ✔️

Cluster ❌️

Read/write splitting ❌

stream-node-max-entries
The maximum number of entries stored on each macro node in a stream. Valid values: 0 to 999999999999999.
Note A value of 0 indicates that the number of entries on each macro node is unlimited.

Standard ✔️

Cluster ❌️

Read/write splitting ❌

timeout
Specifies a timeout period. The system closes a connection to a client if the connection remains idle for the specified period of time. Valid values: 0 to 100000. Unit: seconds.
Note A value of 0 indicates that no timeout periods are specified.

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

zset-max-ziplist-entries
Specify the maximum number of key-value pairs stored in a sorted set and the maximum size of the keys and values of key-value pairs stored in a sorted set. Ziplist encoding is used only if the following conditions are met:
  • The keys and values of key-value pairs stored in the sorted set are all smaller than the value of the hash-max-ziplist-value parameter. The keys and values are measured in bytes.
  • The number of key-value pairs stored in the sorted set is smaller than the value of the zset-max-ziplist-entries parameter.

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

Standard ✔️

Cluster ✔️

Read/write splitting ✔️

zset-max-ziplist-value