Tair allows you to modify the values of specific instance parameters. The instance parameters that can be configured vary with the engine version and instance architecture. This topic describes these parameters.
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 modification to take effect. For more information, see Modify the values of parameters for an instance.
This topic is applicable only to Tair instances, including DRAM-based instances, persistent memory-optimized instances, and ESSD-based instances. For information about the parameters supported for ApsaraDB for Redis Community Edition instances, see Parameters that can be configured for ApsaraDB for Redis instances.
Parameters
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.
To ensure the stability of Tair instances, only specific parameters can be configured. The parameters that are not described in this topic cannot be configured.
For more information about instance architectures, see Standard architecture, Cluster architecture, and Read/write splitting architecture.
Persistent memory-optimized and DRAM-based instances
Parameter | Description | Instance series and architecture | |
Persistent memory-optimized instance (compatible with Redis 6.0) | DRAM-based instance (compatible with Redis 5.0 and Redis 6.0) | ||
#no_loose_check-whitelist-always | Specifies whether to check that the IP address of a client is added to a whitelist of your Tair 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:
Note This parameter is available only for local disk-based instances. | ❌ | Standard ️️✔️ Cluster ️️✔️ Read/write splitting ️️✔️ |
#no_loose_disabled-commands | Disables 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
| Standard ️️✔️ Cluster ️️✔️ Read/write splitting ️️✔️ | Standard ️️✔️ Cluster ️️✔️ Read/write splitting ️️✔️ |
#no_loose_lua-strict-mode | Specifies whether to enable the strict mode for Lua scripting. After you enable the strict mode for standard instances, keys in Lua scripts must be specified by using the
Note This parameter is available only for Tair ESSD-based instances and DRAM-based instances that are compatible with Redis 6.0. | ❌ | Standard ️️✔️ Cluster ❌ Read/write splitting ️❌️ |
#no_loose_publish-no-wait-result | Specifies whether to improve the throughput of the Tair instance when the PUBLISH command is run on the instance. The output of this command is always 0. Valid values:
Note This parameter is available only for Tair DRAM-based instances that are compatible with Redis 6.0. | ❌ | 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:
| 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:
| Standard ️️✔️ Cluster ️️✔️ Read/write splitting ❌ | Standard ️️✔️ Cluster ️️✔️ Read/write splitting ❌ |
#no_loose_ssl-enabled | Specifies whether to enable SSL encryption. Valid values:
Note This parameter is available only for local disk-based instances. | ❌ | Standard ❌ Cluster ️️✔️ Read/write splitting ️️✔️ |
#no_loose_statistics-cmds | This parameter is related to the observability of Tair. After you specify this parameter for an instance, you must also enable the audit log feature for the instance. Audit logs must be collected at an interval of 5 seconds. For more information about the observability of Tair and audit logs, see Observability and Enable the audit log feature.
Note
| ❌ | Standard ❌ Cluster ️️✔️ Read/write splitting ️️✔️ |
#no_loose_statistics-ip-enable | ❌ | Standard ❌ Cluster ️️✔️ Read/write splitting ️️✔️ | |
#no_loose_statistics-keys | ❌ | Standard ❌ Cluster ️️✔️ Read/write splitting ️️✔️ | |
#no_loose_tls-min-version | The earliest Transport Layer Security (TLS) version supported by the instance. Valid values:
| ❌ | Standard ❌ Cluster ️️✔️ Read/write splitting ️️✔️ |
active-expire-effort | The level of activeness in cleaning up expired keys. If you specify a larger value for this parameter, the engine becomes more active in cleaning up expired keys. In this case, memory consumed by expired keys decreases but CPU utilization and latency increase. Valid values: 1 to 10. Default value: 1. Note This parameter is available only for Tair persistent memory-optimized instances. | 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 ️️✔️ |
appendonly | Specifies whether to enable AOF persistence for master nodes. Valid values:
| 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:
| 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:
| Standard ❌ Cluster ️️✔️ Read/write splitting ️️✔️ | Standard ❌ Cluster ️️✔️ Read/write splitting ️️✔️ |
dynamic-hz | Specifies whether to enable dynamic frequency control for background tasks. Valid values:
| Standard ️️✔️ Cluster ️️️️️️✔️️️️️ Read/write splitting ️️✔️ | Standard ️️✔️ Cluster ️️✔️ Read/write splitting ️️✔️ |
hash-max-ziplist-entries | The maximum number and size of key-value pairs stored in a hash. Ziplist encoding is used only if a hash meets both of the following conditions:
| Standard ️️✔️ Cluster ️️️️️️✔️️️️️ Read/write splitting ️️✔️ | Standard ️️✔️ Cluster ️️️️️️✔️️️️️ Read/write splitting ️️✔️ |
hash-max-ziplist-value | |||
hz | Specifies how frequently tasks are performed in the background for the Tair 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 Tair 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 ️️✔️ |
lazyfree-lazy-eviction | Specifies whether to enable the eviction feature based on the lazyfree mechanism. Valid values:
| 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:
| 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:
| 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:
| 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.
| 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:
| ❌ | ❌ |
list-max-ziplist-value | |||
list-max-ziplist-size |
| 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 Tair instance reaches the value of Maxmemory, data eviction is triggered. You can choose a data eviction policy based on your needs. Valid values: Note
| 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 ️️✔️ |
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.
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 | Standard ️️✔️ Cluster ️️️️️️✔️️️️️ Read/write splitting ️️✔️ | Standard ️️✔️ Cluster ️️️️️️✔️️️️️ Read/write splitting ️️✔️ |
pena_rename_move_compatible_enabled | Specifies whether to enable the support of the MOVE and RENAME commands. The time complexity of these commands is O(n), which differs from O(1) of native Redis commands. If the MOVE or RENAME command is used to manage large keys, the command takes an extended period of time to run. Valid values:
Note This parameter is available only for Tair persistent memory-optimized instances of 1.2.4 or later. | Standard ️️✔️ Cluster ️️️️️️✔️️️️️ Read/write splitting ️️✔️ | ❌ |
ptod_enabled | Specifies whether to pass through client IP addresses to data nodes by using proxy nodes for cluster instances in proxy mode or read/write splitting instances. Valid values:
| 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. Valid values:
Important The key-value pair information of the hotkeys that is cached on proxy nodes is not updated within the validity period. Therefore, make sure that your business supports eventual consistency. | ❌ | Standard ❌ Cluster ️️✔️ Read/write splitting ❌ |
query_cache_expire | The validity period of cached data. Unit: milliseconds. Valid values: 100 to 60000. Default value: 1000.
| ❌ | Standard ❌ Cluster ️️✔️ Read/write splitting ❌ |
query_cache_mode | The proxy query cache mode. Valid values:
Important The maximum cache capacity of each proxy 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 the overall performance. | ❌ | Standard ❌ Cluster ️️✔️ Read/write splitting ❌ |
readonly_lua_route_ronode_enable | Specifies whether to enable Lua scripting on read replicas. Valid values:
| ❌ | 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:
| ❌ | 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 ️️✔️ |
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:
| ❌ | 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 only if a set meets both of the following conditions:
| 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. | 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 ️️✔️ |
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 no limits exist. | 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 no limits exist. | Standard ️️✔️ Cluster ️️️️️️✔️️️️️ Read/write splitting ️️✔️ | Standard ️️✔️ Cluster ️️✔️ Read/write splitting ️️✔️ |
timeout | The timeout period. The system closes a connection to a client for the Tair 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 ️️✔️ |
transfer_subscrible_to_psubscrible_enable | Specifies whether to enable the feature of converting SUBSCRIBE to PSUBSCRIBE. Valid values:
| ❌ | Standard ❌ Cluster ️️️️️️✔️️️️️ Read/write splitting ️️✔️ |
zset-max-ziplist-entries | The maximum number and size of key-value pairs stored in a sorted set. Ziplist encoding is used only if a sorted set meets both of the following conditions:
| Standard ️️✔️ Cluster ️️️️️️✔️️️️️ Read/write splitting ️️✔️ | Standard ️️✔️ Cluster ️️️️️️✔️️️️️ Read/write splitting ️️✔️ |
zset-max-ziplist-value |
ESSD-based instances
Parameter | Description | ESSD-based instance (compatible with Redis 4.0) |
#no_loose_lua-strict-mode | Specifies whether to enable the strict mode for Lua scripting. After you enable the strict mode for standard instances, keys in Lua scripts must be specified by using the
| Standard ️️️✔️️ |
latency-monitor-threshold | The threshold of event latency. Events whose latency exceeds this threshold are recorded as events with latency. Valid values: 0 to 10000000. Unit milliseconds. | Standard ️️✔️ |
max-write-batch-size | The maximum size of the disk storage format data that can be generated in memory during command execution. Unit: bytes. Valid values: 0 to 1073741824 (1 GB). The default value is 0, which indicates that no upper limit is set. Note If your data distribution and request patterns tend to generate large intermediate data during command execution, we recommend that you set max-write-batch-size to a value such as 1073741824 (1 GB) to prevent potential memory overflow. | Standard ️️✔️ |
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. | Standard ️️✔️ |
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 ️️️✔️️ |
txn-isolation-lock | Specifies whether to enable transactional locking. If you set this parameter to yes, you can run the MULTI, EXEC, and Lua-related commands on an ESSD-based instance. In this case, the instance performance may degrade by 10%. Valid values:
| Standard ️️️✔️️ |