Performance-enhanced instances of ApsaraDB for Redis Enhanced Edition (Tair) are suitable for scenarios that require high concurrency, high performance, and a large number of read and write operations on hot data. Compared with ApsaraDB for Redis Community Edition instances, performance-enhanced instances of ApsaraDB for Redis Enhanced Edition (Tair) provide more benefits. For example, performance-enhanced instances of ApsaraDB for Redis Enhanced Edition (Tair) provide enhanced multi-threading performance and enhanced integration with multiple Redis modules.

Benefits

Item Description
Compatibility
  • Performance-enhanced instances are fully compatible with native Redis databases. To switch from native Redis databases to ApsaraDB for Redis instances, you do not need to modify the application code.
Performance
  • Performance-enhanced instances of ApsaraDB for Redis Enhanced Edition (Tair) use the multi-threading model and provide three times the performance of Community Edition instances of the same specifications. This eliminates the performance limits on high-frequency read and write requests for hot data.
  • Compared with native Redis databases, performance-enhanced instances of ApsaraDB for Redis Enhanced Edition (Tair) can process a large number of queries per second (QPS) at higher speeds.
  • Performance-enhanced instances of ApsaraDB for Redis Enhanced Edition (Tair) ensure stable performance in high-concurrency scenarios and eliminate connection issues that are caused by an unexpected rise in the number of requests during peak hours.
  • Performance-enhanced instances of ApsaraDB for Redis Enhanced Edition (Tair) run full data synchronization tasks and incremental data synchronization tasks in I/O threads to accelerate the synchronization.
Architectures
  • Performance-enhanced instances of ApsaraDB for Redis Enhanced Edition (Tair) support three architectures: standard, cluster, and read/write splitting.
Integration with multiple Redis modules
  • Performance-enhanced instances of ApsaraDB for Redis Enhanced Edition (Tair) are integrated with multiple Redis modules that are developed by Alibaba Cloud. These modules include TairString, TairHash, TairGIS, TairBloom, TairDoc, and TairZset. These modules expand the capabilities of ApsaraDB for Redis, which allows you to move your focus from optimizing storage architecture and response speed to developing your business logic.
Enterprise-grade features

Scenarios

Performance-enhanced instances of ApsaraDB for Redis Enhanced Edition (Tair) can be used in scenarios such as live video streaming, flash sales, and online education. This section describes typical scenarios:

  • Scenario 1: During flash sales of popular commodities, the number of QPS on cached hotkeys may exceed 200,000 QPS during peak hours. Standard master-replica instances of ApsaraDB for Redis Community Edition cannot meet this requirement.

    Performance-enhanced standard instances of ApsaraDB for Redis Enhanced Edition (Tair) can efficiently process requests during flash sales without performance issues.

  • Scenario 2: Cluster instances of ApsaraDB for Redis Community Edition have limits on database transactions and Lua scripts.

    Performance-enhanced cluster instances of ApsaraDB for Redis Enhanced Edition (Tair) can provide high performance and eliminate the limits on the usage of commands in cluster instances.

  • Scenario 3: You have built a self-managed Redis instance that consists of one master node and multiple replica nodes. The number of replica nodes and O&M costs increase as your workloads increase.

    Performance-enhanced read/write splitting instances of ApsaraDB for Redis Enhanced Edition (Tair) can provide one data node and up to five read replicas. This architecture allows you to deliver more than one million QPS.

  • Scenario 4: You have built a self-managed Redis cluster to deliver more than 10 million QPS. The number of data shards and O&M costs increase as your workloads increase.

    Performance-enhanced cluster instances of ApsaraDB for Redis Enhanced Edition (Tair) can reduce the cluster size by two thirds to significantly reduce the O&M costs.

Comparison between threading models

Threading model Description
Figure 1. Single-threading model
Single-threading model for standard instances
During the process of request handling, native Redis databases and ApsaraDB for Redis Community Edition instances must undergo the following steps: read requests, parse requests, process data, and then send responses. In this case, network I/O operations and request parsing consume most of the available resources.
Figure 2. Multi-threading model
Multi-threading model for performance-enhanced instances

To improve performance, each performance-enhanced instance runs multiple threads to process the tasks in these steps in parallel.

  • I/O threads are used to read requests, send responses, and parse commands.
  • Worker threads are used to process commands and timer events.
  • Auxiliary threads are used to monitor the heartbeat and status of nodes to ensure high availability.

Each performance-enhanced instance of ApsaraDB for Redis reads and parses requests in I/O threads, places the parsed requests as commands in a queue, and then sends the commands to the worker threads. Then, the worker threads run the commands to process the requests and send the responses to I/O threads by using a different queue.

Each performance-enhanced instance supports a maximum of four parallel I/O threads. Unlocked queues and pipelines are used to transmit data between the I/O threads and the worker threads to improve multi-threading performance.

Note
  • The processing speeds of threads are accelerated for common data structures, such as string, list, set, hash, zset, hyperloglog, geo, and extension structures.
  • API operations such as pub, sub, and blocking are replicated in the worker threads. These API operations can be accelerated to increase throughput and to increase performance by about 50%.
  • Transactions and Lua scripts must be executed in sequence. No acceleration can be achieved.
Note The multi-threading model of native Redis 6.0 consumes a large number of CPU resources to deliver performance that is up to two times higher than the performance delivered by the single thread model of native Redis databases earlier than Redis 6.0. The Real Multi-I/O model supports multiple connections, linear increases in throughput, and provides fully accelerated I/O threads.

Performance comparison

ApsaraDB for Redis Community Edition instances and native Redis databases support the single-threading model. In the single-threading model, each data node supports 80,000 QPS to 100,000 QPS. Performance-enhanced instances of ApsaraDB for Redis Enhanced Edition (Tair) support the multi-threading model. In the multi-threading model, the I/O threads, worker threads, and auxiliary threads process requests in parallel. Each data node of a performance-enhanced instance delivers performance that is about three times the performance delivered by each data node of an ApsaraDB for Redis Community Edition instance. The following table describes the scenarios of ApsaraDB for Redis Community Edition instances and performance-enhanced instances of ApsaraDB for Redis Enhanced Edition (Tair) in different architectures.

Architecture Instance edition and series Description
Standard ApsaraDB for Redis Community Edition instances These instances are not suitable if the QPS that is required on a single instance exceeds 100,000.
Performance-enhanced instances of ApsaraDB for Redis Enhanced Edition (Tair) These instances are suitable if the QPS that is required on a single instance exceeds 100,000.
Cluster ApsaraDB for Redis Community Edition instances A cluster instance consists of multiple data nodes. Each data node provides performance that is comparable to the performance of a standard instance. If a data node stores hot data and receives a large number of concurrent requests to query the hot data, the read and write operations on the other data that is stored on the data node may be affected. As a result, the performance of the data node deteriorates.
Performance-enhanced instances of ApsaraDB for Redis Enhanced Edition (Tair) These instances provide high performance to read and write hot data at reduced maintenance costs.
Read/write splitting ApsaraDB for Redis Community Edition instances These instances provide high read performance and are suitable for scenarios in which the number of read operations is larger than the number of write operations. However, these instances cannot support a large number of concurrent write operations.
Performance-enhanced instances of ApsaraDB for Redis Enhanced Edition (Tair) These instances provide high read performance and can support a large number of concurrent write operations. These instances are suitable for scenarios in which a large number of write operations need to be processed but the number of read operations is larger than the number of write operations.

Integration with multiple Redis modules

Similar to open source Redis, ApsaraDB for Redis Community Edition supports various native data types, such as strings, lists, hashes, sets, sorted sets, and streams. These data types support common development workloads, but do not support complex workloads. To manage complex workloads, you must make required adjustments. For example, you must modify your application data or run Lua scripts. Performance-enhanced instances of ApsaraDB for Redis Enhanced Edition (Tair) are integrated with multiple Redis modules that are developed by Alibaba Cloud. The modules include TairString, TairHash, TairGIS, TairBloom, and TairDoc. These modules make ApsaraDB for Redis suitable in more scenarios, simplify development workloads in complex scenarios, and allow you to focus on business innovations.

Table 1. Supported new command types
Command type Description
CAS and CAD commands These commands are developed to enhance the performance of Redis strings. You can use them to implement simple and efficient distributed locks.
TairString commands A TairString is a string that contains a version number. TairStrings contain keys, values, and version numbers. The INCRBY and INCRBYFLOAT commands are used to increase or decrease the values of Redis strings. You can use TairStrings to limit the range of results returned by these commands. If a result is out of range, an error message is returned.
TairHash commands A TairHash is a hash that supports multiple commands and provides the same high performance as a Redis-native hash. In addition, TairHashes allow you to specify the expiration time and version number of a field. This helps you simplify the development process. TairHashes use the efficient active expire algorithm to check the expiration time of fields and delete expired fields. This process does not increase the database response time.
TairGIS commands A TairGIS is a data structure that uses R-tree indexes and supports geographic information system (GIS) API operations. Redis-native GEO commands allow you to use one-dimensional indexes to query points. TairGIS commands allow you to query points, lines, and planes by using two-dimensional indexes. You can also use TairGIS commands to check the relationships between different elements, such as whether A contains B or A intersects with B.
TairBloom commands A TairBloom is a Bloom filter that supports dynamic scaling and is compatible with RedisBloom commands. Compared with traditional methods that achieve a similar feature, TairBlooms consume less memory and maintain a stable false positive rate during scaling. You can use TairBlooms to check whether a large amount of data exists. In this case, a specific false positive rate is allowed.
TairDoc commands A TairDoc is a document data structure. It supports JSON standards and is compatible with RedisJSON commands. TairDoc data is stored in binary trees and allows for fast access to child elements.

Enterprise-grade features

Feature Description
Use data flashback to restore data by point in time After you enable the data flashback feature, ApsaraDB for Redis retains append-only file (AOF) backup data for up to seven days. During the retention period, you can specify a point in time that is accurate to the second. ApsaraDB for Redis creates an instance and restores the backup data at the specified point in time to the new instance.
Proxy query cache After you enable the proxy query cache feature, the proxy servers that are configured cache the requests and responses for hotkeys. If the same requests are received from a client within the validity period that you specify, ApsaraDB for Redis retrieves the responses to the requests from the cache and returns the responses to the client. During this process, ApsaraDB for Redis does not need to interact with the data shards that reside in the backend. For more information, see Use proxy query cache to address issues caused by hotkeys.
Global Distributed Cache for Redis Global Distributed Cache for Redis is a geo-redundancy database system that is developed by Alibaba Cloud based on ApsaraDB for Redis. Global Distributed Cache for Redis helps enterprises provide database services from multiple data centers that are deployed in different locations and build the active geo-redundancy architecture of Alibaba Cloud.
Two-way data synchronization by using DTS Data Transmission Service (DTS) supports two-way data synchronization between instances of ApsaraDB for Redis Enhanced Edition (Tair). This synchronization solution is suitable for scenarios such as active geo-redundancy and geo-disaster recovery. For more information, see Configure two-way data synchronization between ApsaraDB for Redis Enhanced Edition (Tair) instances.

FAQ

Q: What do I do if a client does not support the commands that are provided by new modules?

A: Before you use the commands that are provided in new modules, define the commands in your application code. Alternatively, use the TairJedis client that is developed by Alibaba Cloud based on Jedis.