All Products
Search
Document Center

ApsaraDB for Redis:Parameters that can be configured for ApsaraDB for Redis instances

Last Updated:Feb 27, 2024

You can fine-tune and customize parameters for your ApsaraDB for Redis instances based on your business scenarios to improve the performance and security of the instances. This topic describes the parameters that are supported in different engine versions and architectures.

Precautions

  • If the Parameter is not supported for current version error is returned when you configure parameters, update the minor version of your instance. For more information, see Update the minor version of an instance.

  • After you submit the modifications for specific parameters, your instance is automatically restarted. During the restart, the instance encounters transient connections that last for a few seconds. On the page for modifying parameters, the Restart and Take Effect column indicates whether the instance must be restarted for the modifications to take effect. For more information, see Configure instance parameters.

Important

This topic describes the parameters that are supported by ApsaraDB for Redis Community Edition instances. For information about the parameters that are supported by ApsaraDB for Redis Enhanced Edition (Tair) instances, including DRAM-based, persistent memory-optimized, and ESSD-based instances, see Parameters that can be configured for Tair instances.

Supported parameters and descriptions

The following items describe the symbols 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

Instance major version and architecture

Redis 7.0

Redis 6.0

Redis 5.0

Redis 4.0

Redis 2.8

#no_loose_check-whitelist-always

Specifies whether to check that the IP address of a client is added to a whitelist of your ApsaraDB for Redis instance after password-free access is enabled for the instance. The client is deployed in the same virtual private cloud (VPC) as the instance. Valid values:

  • yes: After you enable password-free access for the ApsaraDB for Redis instance, you must also add the IP address of a client that is deployed in the same VPC as the ApsaraDB for Redis instance to a whitelist of the instance before the client can connect to the instance.

    If the (error) ERR illegal address error is returned, the whitelist is improperly configured.

  • no (default): After you enable password-free access for the ApsaraDB for Redis instance, you can connect a client that is deployed in the same VPC as the ApsaraDB for Redis instance to the instance without adding the IP address of the client to a whitelist of the instance.

Note

This parameter is available only for local disk-based instances.

Standard ️✔️

Cluster ️️️️️️✔️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️✔️

Read/write splitting ️✔️

#no_loose_disabled-commands

The disabled commands. You can use this parameter to disable the commands that may have high risks or high time complexity based on your business requirements, such as FLUSHALL, FLUSHDB, KEYS, HGETALL, EVAL, EVALSHA, and SCRIPT.

Note
  • Specify commands in lowercase letters and separate the commands with commas (,).

  • Even if you disable the FLUSHALL command, the Clear Data feature in the Tair console can still be used.

  • To ensure stable instance performance for ApsaraDB for Redis, specific commands cannot be disabled, such as CONFIG. For more information, see High-risk commands that cannot be disabled.

Standard ️✔️

Cluster ️️️️️️✔️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️✔️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️✔️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️✔️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️✔️

Read/write splitting ️✔️

sentinel_compat_enable

Specifies whether to enable the Sentinel-compatible mode for cluster instances in proxy mode or read/write splitting instances. Valid values:

  • 1: enables the Sentinel-compatible mode.

  • 0 (default): disables the Sentinel-compatible mode.

Standard ❌

Cluster ️️️️️️✔️

Read/write splitting ️✔️

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 for standard instances or cluster instances in direct connection mode. Valid values:

  • yes

  • no (default)

Standard ️✔️

Cluster ️️️️️️✔️

Read/write splitting ❌

Standard ️✔️

Cluster ️️️️️️✔️

Read/write splitting ❌

Standard ️✔️

Cluster ️️️️️️✔️

Read/write splitting ❌

Standard ️✔️

Cluster ️️️️️️✔️

Read/write splitting ❌

#no_loose_ssl-enabled

Specifies whether to enable SSL encryption. Valid values:

  • yes

  • no (default)

Note

This parameter is available only for local disk-based instances.

Standard ❌

Cluster ️️️️️️✔️

Read/write splitting ️✔️

Standard ❌

Cluster ️️️️️️✔️

Read/write splitting ️✔️

Standard ❌

Cluster ️️️️️️✔️

Read/write splitting ️✔️

#no_loose_statistics-cmds

This parameter is related to the observability of ApsaraDB for Redis. After you specify this parameter for an instance, you must also enable the audit log feature for the instance. Audit logs are collected at an interval of 5 seconds.

  • #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 the collection of statistics about IP addresses or whether to record IP addresses of established connections. Valid values: yes and no. Default value: 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 for the #no_loose_statistics-cmds parameter or an excessive number of keys for the #no_loose_statistics-keys parameter. In addition, make sure that these parameters are enabled only when you want to troubleshoot issues or perform O&M tasks.

  • You can download audit logs in the Simple Log Service console and use the keywords described in the following section to search for the logs that you want to view. For more information about how to download audit logs, see Download audit logs.

    • 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 statistics of keys.

    • A type value of 10: indicates the statistics of commands.

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

The earliest Transport Layer Security (TLS) version supported by the instance. Valid values:

  • TLSv1 (default)

  • TLSv1.1

  • TLSv1.2

Standard ❌

Cluster ️️️️️️✔️

Read/write splitting ️✔️

Standard ❌

Cluster ️️️️️️✔️

Read/write splitting ️✔️

Standard ❌

Cluster ️️️️️️✔️

Read/write splitting ️✔️

Standard ❌

Cluster ️️️️️️✔️

Read/write splitting ️✔️

Standard ❌

Cluster ️️️️️️✔️

Read/write splitting ️✔️

cluster_compat_enable

Specifies whether to enable the support for the syntax of native Redis clusters for cluster instances in proxy mode or read/write splitting instances. Valid values:

  • 0: disables the support for the syntax of native Redis clusters.

  • 1 (default): enables the support for the syntax of native Redis clusters.

Standard ❌

Cluster ️️️️️️✔️

Read/write splitting ️✔️

Standard ❌

Cluster ️️️️️️✔️

Read/write splitting ️✔️

Standard ❌

Cluster ️️️️️️✔️

Read/write splitting ️✔️

Standard ❌

Cluster ️️️️️️✔️

Read/write splitting ️✔️

Standard ❌

Cluster ️️️️️️✔️

Read/write splitting ️✔️

max_session_processing

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 limit pending requests that are caused by capability differences between the frontend and backend of proxy nodes. This prevents an increase in memory usage.

Standard ❌

Cluster ️️️️️️✔️

Read/write splitting ️✔️

Standard ❌

Cluster ️️️️️️✔️

Read/write splitting ️✔️

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. Valid values:

  • 0 (default): does not pass through client IP addresses to data nodes.

  • 1: passes through client IP addresses to data nodes.

Note

This parameter is irrelevant to standard instances or cluster instances in direct connection mode.

Standard ❌

Cluster ️️️️️️✔️

Read/write splitting ️✔️

Standard ❌

Cluster ️️️️️️✔️

Read/write splitting ️✔️

Standard ❌

Cluster ️️️️️️✔️

Read/write splitting ️✔️

Standard ❌

Cluster ️️️️️️✔️

Read/write splitting ️✔️

readonly_lua_route_ronode_enable

Specifies whether to enable Lua scripting on read replicas. Valid values:

  • 0 (default): disables Lua scripting. Lua scripts are processed by master nodes instead of read replicas.

  • 1: enables Lua scripting. Lua scripts that involve only read requests are forwarded to read replicas.

Standard ❌

Cluster ️️️️️❌️

Read/write splitting ️✔️

Standard ❌

Cluster ️️️️️❌️

Read/write splitting ️✔️

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. Valid values:

  • 0 (default): 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 ️✔️

Standard ❌

Cluster ️️️️️❌️

Read/write splitting ️✔️

Standard ❌

Cluster ️️️️️❌️

Read/write splitting ️✔️

rt_threshold_ms

The threshold for logging slow queries of 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 a 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 ️✔️

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 for cluster instances in proxy mode or read/write splitting instances. For more information, see Additional checks on Lua scripts in proxy mode. Valid values:

  • 0: does not check whether the keys are mapped to the same slot. If your database account of the ApsaraDB for Redis instance has read-only permissions, the system still performs the check.

  • 1 (default): 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 ️✔️

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. Valid values:

  • 0 (default): 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 ️✔️

Standard ❌

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ❌

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

appendfsync

The frequency at which to perform the fsync operation for append-only file (AOF) persistence. The default value is everysec and cannot be changed. This parameter is available only if the appendonly parameter is set to yes.

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

appendonly

Specifies whether to enable AOF persistence for master nodes. Valid values:

  • yes (default)

  • no

    Note

    By default, data persistence by using Redis Database (RDB) snapshots is performed once a day. For more information, see Automatic or manual backup.

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

client-output-buffer-limit pubsub

The output buffer limits of publisher and subscriber clients. The clients are disconnected when the specified limits are reached. Specify this parameter in the following format: <hard limit> <soft limit> <soft seconds>. Default value: 33554432 8388608 60.

  • <hard limit>: the hard limit. A client is disconnected if its output buffer size is larger than or equal to the hard limit value. The hard limit value is measured in bytes.

  • <soft limit>: the soft limit. <soft seconds>: the maximum number of seconds during which the soft limit value is reached or exceeded. A client is disconnected if its output buffer remains larger than or equal to the soft limit value for a period of time that is 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 ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

dynamic-hz

Specifies whether to enable dynamic frequency control for background tasks. Valid values:

  • yes (default): enables dynamic frequency control for background tasks.

  • no: disables dynamic frequency control for background tasks.

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️✔️

Read/write splitting ️✔️

  • hash-max-ziplist-entries

  • hash-max-ziplist-value

hash-max-ziplist-entries and hash-max-ziplist-value are available for Redis 6.0 and earlier.

Ziplist encoding is used only if a hash meets the following conditions:

  • The number of key-value pairs stored in the hash is smaller than the value of the hash-max-ziplist-entries parameter.

  • 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.

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

  • hash-max-listpack-entries

  • hash-max-listpack-value

hash-max-listpack-entries and hash-max-listpack-value are available starting from Redis 7.0.

Ziplist (listpack) encoding is used only if a hash meets the following conditions:

  • The number of key-value pairs stored in the hash is smaller than the value of the hash-max-listpack-entries parameter.

  • The keys and values of key-value pairs stored in the hash are all smaller than the value of the hash-max-listpack-value parameter. The keys and values are measured in bytes.

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

hz

Specifies how frequently tasks are performed in the background for the ApsaraDB for Redis instance. 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 larger value results in higher CPU consumption of the ApsaraDB for Redis instance but allows the system to delete expired keys more frequently and close timeout connections more precisely. We recommend that you specify a value less than or equal to 100.

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

latency-tracking

Specifies whether to enable tracking of per-command latencies. Valid values:

  • yes (default): enables tracking of per-command latencies.

  • no: disables tracking of per-command latencies.

Note

This parameter is available only for Redis 7.0.

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

lazyfree-lazy-eviction

Specifies whether to enable the eviction feature based on the lazyfree mechanism. Valid values:

  • yes: enables the eviction feature.

  • no (default): disables the eviction feature.

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

lazyfree-lazy-expire

Specifies whether to delete expired keys based on the lazyfree mechanism. Valid values:

  • yes (default): deletes expired keys.

  • no: does not delete expired keys.

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

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. Valid values:

  • yes (default): asynchronously deletes data.

  • no: does not asynchronously delete data.

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

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. Valid values:

  • yes (default): asynchronously deletes data.

  • no: does not asynchronously delete data.

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

lazyfree-lazy-user-flush

Specifies whether to control the FLUSHDB, FLUSHALL, SCRIPT FLUSH, and FUNCTION FLUSH commands to asynchronously delete data based on the lazyfree mechanism. Valid values:

  • yes: controls the commands to asynchronously delete data based on the lazyfree mechanism.

  • no (default): does not control the commands to asynchronously delete data based on the lazyfree mechanism.

Note

This parameter is available only for Redis 7.0.

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

list-compress-depth

The number of nodes that are not compressed at both ends of a list. Valid values: 0 to 65535.

  • 0 (default): 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 ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

list-max-ziplist-entries

The maximum number of elements that can be stored in a list and the maximum size of each element in the list. Ziplist encoding is used only if a list meets both of the following conditions:

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

  • The number of bytes of each element stored in the list is smaller than the value of the list-max-ziplist-value parameter.

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

list-max-ziplist-value

  • list-max-ziplist-size

  • list-max-listpack-size

list-max-ziplist-size is available for Redis 6.0 and earlier, whereas list-max-listpack-size is available starting from Redis 7.0.

  • A positive number indicates the maximum number of elements in each ziplist (listpack) of a quicklist. For example, if you set this parameter to 5, each ziplist (listpack) of a quicklist can contain a maximum of five elements.

  • A negative value indicates the maximum number of bytes in each ziplist (listpack) of a quicklist. Valid values:

    • -5: specifies that each ziplist (listpack) of a quicklist cannot exceed 64 KB.

    • -4: specifies that each ziplist (listpack) of a quicklist cannot exceed 32 KB.

    • -3: specifies that each ziplist (listpack) of a quicklist cannot exceed 16 KB.

    • -2 (default): specifies that each ziplist (listpack) of a quicklist cannot exceed 8 KB.

    • -1: specifies that each ziplist (listpack) of a quicklist cannot exceed 4 KB.

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

maxmemory-policy

The policy used to evict keys if memory is exhausted. If the memory usage of your ApsaraDB for Redis instance reaches the value of Maxmemory, data eviction is triggered. You can choose a data eviction policy based on your needs. Valid values:

Note
  • By default, Maxmemory is set to the storage capacity of the instance class of the ApsaraDB for Redis instance and cannot be changed. For example, if the storage capacity of the instance class is 2 GB, the value of Maxmemory is 2 GB.

  • For a cluster instance, if the memory usage of a single data node reaches the value of Maxmemory, data eviction is triggered even if the total memory usage of the instance does not reach its upper limit. To address this issue, you must handle data skew for the instance. For more information, see Deal with data skew issues.

  • LRU indicates the policy of evicting the least recently used data from a cache. LFU indicates the policy of evicting the least frequently used data from a cache. LRU, LFU, and time-to-live (TTL) policies are implemented by using approximation and randomized algorithms.

  • volatile-lru (default): evicts the LRU keys from keys that have a TTL configured regardless of whether the keys have expired.

  • volatile-lfu: evicts the LFU keys from keys that have a TTL configured.

  • volatile-random: randomly evicts keys from keys that have a TTL configured.

  • volatile-ttl: evicts the keys that have the shortest TTL from keys that have a TTL configured.

  • allkeys-lru: evicts the LRU keys from all keys.

  • allkeys-lfu: evicts the LFU keys from all keys.

  • allkeys-random: randomly evicts keys from all keys.

  • noeviction: does not evict keys to make space when the memory limit is reached, but returns errors for write operations.

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

maxmemory-eviction-tenacity

The Eviction factor that is used to set the latency of each data eviction. Valid values: 0 to 100. Default value: 10.

  • Lowering this value reduces the latency, but compromises the validity of data eviction.

  • If large amounts of data are written, you can increase this value. In this case, the latency increases. A value of 100 indicates that the system keeps evicting data until the memory usage drops below the maxmemory limit or no keys can be evicted.

Note

This parameter is available only for Redis 7.0.

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

active-expire-effort

The Expire factor that is used to set the latency of each deletion of expired keys. Valid values: 1 to 10. Default value: 1. The larger the value, the faster expired keys are deleted and the more CPU resources are used.

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

notify-keyspace-events

The types of events of which the server can notify clients. The value of this parameter is a combination of the following characters. This parameter setting applies to all databases in the instance. These notifications consume CPU resources. For more information, see Redis keyspace notifications.

  • K: keyspace events. All events are published with a _keyspace@<db>_ prefix.

  • E: keyevent events. All events 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. Clients are notified of operations to create, modify, and delete strings.

  • l: events of list commands.

  • s: events of set commands.

  • h: events of hash commands.

  • z: events of sorted set commands.

  • x: expiration events. Clients may be notified when an expired key is deleted instead of when a key expires.

  • e: eviction events. Clients are notified when a key is evicted based on maxmemory policies.

  • A: all the preceding event types. This parameter is the alias for the g$lshzxe parameter. Example: AKE.

Important

The specified value must include at least K or E. Otherwise, no notifications are sent.

For example, if you want to be notified of expiration events, set this parameter to Ex. If you run the PSUBSCRIBE _keyevent@0_* command on your client after you specify this parameter, you are notified of the keyevent events of database 0.

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

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 for which a set supports intset encoding. Intset encoding is used if a set meets the following conditions:

  • All data entries in the set are strings.

  • 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 ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

slowlog-log-slower-than

The threshold for logging 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 (20 milliseconds).

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

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 a 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 ️✔️

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 occupy. 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 ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️✔️

Read/write splitting ️✔️

stream-node-max-entries

The maximum number of entries that can be stored on each macro node in a stream. Valid values: 0 to 999999999999999.

Note

A value of 0 indicates that the number of entries that can be stored on each macro node is unlimited.

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️✔️

Read/write splitting ️✔️

tracking-table-max-keys

The maximum number of keys that can be stored in the tracking table. Valid values: 0 to 1000000000. Default value: 1000000.

Note

This parameter is available only for Redis 7.0.

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

timeout

The timeout period. The system closes a connection to a client for the ApsaraDB for Redis instance if the connection remains idle for the specified period of time. Valid values: 0 to 100000. Unit: seconds. The default value is 0, which indicates that no timeout periods are specified.

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

  • zset-max-ziplist-entries

  • zset-max-ziplist-value

zset-max-ziplist-entries and zset-max-ziplist-value are available for Redis 6.0 and earlier.

Ziplist encoding is used only if a sorted set meets the following conditions:

  • The number of key-value pairs stored in the sorted set is smaller than the value of the zset-max-ziplist-entries parameter.

  • The keys and values of key-value pairs stored in the sorted set are all smaller than the value of the zset-max-ziplist-value parameter. The keys and values are measured in bytes.

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️

  • zset-max-listpack-entries

  • zset-max-listpack-value

zset-max-listpack-entries and zset-max-listpack-value are available starting from Redis 7.0.

Listpack encoding is used only if a sorted set meets the following conditions:

  • The number of key-value pairs stored in the sorted set is smaller than the value of the zset-max-listpack-entries parameter.

  • The keys and values of key-value pairs stored in the sorted set are all smaller than the value of the zset-max-listpack-value parameter. The keys and values are measured in bytes.

Standard ️✔️

Cluster ️️️️️️️️️️️️️️️️✔️️️️️

Read/write splitting ️✔️