You can fine-tune and customize parameters for your Tair (Enterprise Edition) instances based on your business scenarios to improve the performance and security of the instances. This topic describes the 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. The instance encounters transient connections that last for a few seconds during the restart. 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.
The instance parameters that can be configured vary with the engine version and instance architecture. This topic describes the parameters that are supported by Tair (Enterprise Edition) instances, including DRAM-based instances, persistent memory-optimized instances, and ESSD/SSD-based instances. For information about the parameters that are supported by Redis Open-Source Edition instances, see Parameters that can be configured for Redis Open-Source Edition instances.
Parameters
The following section describes 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.
Only specific parameters can be configured to ensure the stability of instances. The parameters that are not described in this topic cannot be configured.
For more information about instance architectures, see Overview.
DRAM-based and persistent memory-optimized instances
Parameter | Description | Instance series and architecture | |
DRAM-based instance | Persistent memory-optimized instance | ||
#no_loose_check-whitelist-always | Specifies whether to check that the IP address of a client is added to a whitelist of the 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 classic instances. | 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
| 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 DRAM-based instances that are compatible with Redis 6.0 and ESSD/SSD-based instances. | 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_sentinel-password-free-access | Specifies whether to allow password-free execution of Sentinel commands when the Sentinel mode is enabled. Valid values:
| Standard ️️️️️️️️️✔️ Cluster ️️️️️️️️️✔️ Read/write splitting ️️️️️️️️️️️✔️ | Standard ️️️️️️️️️✔️ Cluster ️️️️️️️️️✔️ Read/write splitting ️️️️️️️️️️️✔️ |
#no_loose_statistics-cmds | This parameter is related to the observability of Tair (Enterprise Edition). 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, 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 ️️️️️️️️️️️✔️ |
globalvectorindex_enabled | Specifies whether to enable the TairVector global index feature. Valid values:
| 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 | |||
hello_enabled | Specifies whether to enable the HELLO command to switch between the RESP2 and RESP3 protocols for cluster instances in proxy mode or read/write splitting instances. Valid values:
Note This parameter is available for proxy nodes whose minor version is 7.0.9 or later. | 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 larger value results in higher CPU consumption but allows the system to delete expired keys more frequently and close timed-out 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 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 the number of 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 events are triggered. 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 for 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 whose minor version is 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 ️️️️️️️️️️️✔️ | 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 ️️️️️️️️️️️✔️ | 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 ️️️️️️️️️️️✔️ | 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 query 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 ️️️️️️️️️️️✔️ |
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 (20 milliseconds). | 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 query 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 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 ️️️️️️️️️️️✔️ | 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 ️️️️️️️️️️️✔️ |
timeout | The timeout period. The system closes a connection to a client for the 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 period is 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 ️️️️️️️️️️️✔️ | ❌ |
ts-auto-del-empty-skey-enable | Specifies whether to automatically delete an skey from a TairTS pkey when all data points in the skey expire. Valid values:
Note This parameter is available only for DRAM-based instances of version 24.7.0.0 or later that are compatible with Redis 6.0 and 7.0. | Standard ️️️️️️️️️✔️ Cluster ️️️️️️️️️✔️️️️️ Read/write splitting ️️️️️️️️️️️✔️ | 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/SSD-based instances
Parameter | Description | ESSD/SSD-based instance |
#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
| Standard ️️️️️️️️️️️️️✔️️ |
#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 data that can be processed in one batch before it is written to the disk. 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 (20 milliseconds). | Standard ️️️️️️️️✔️ |
slowlog-max-len | The maximum number of entries that can be stored in a slow query log. Valid values: 100 to 10000. Default value: 1024. | Standard ️️️️️️️️️️️️️✔️️ |
scan-background-interval-ms | The instance proactively polls keys in the background to perform maintenance tasks such as checking the TTL of the data and performing garbage collection.
Note If you have high requirements for background garbage collection efficiency, you can appropriately reduce the value of scan-background-interval-ms. However, increasing the polling frequency also consumes more disk I/O bandwidth. To avoid negatively affecting user experience and request handling, we recommend that you do not significantly increase the polling frequency. | Standard ️️️️️️️️️️️️️✔️️ |
batch-scan-count | 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 commands on the ESSD/SSD-based instance. In this case, the instance performance may degrade by 10%. Valid values:
| Standard ️️️️️️️️️️️️️✔️️ |