- What's New
- Function Overview
- Product Bulletin
-
Service Overview
- Infographics for Comparing DCS for Redis with Open-Source Redis
- What Is DCS?
- Application Scenarios
- Security
- DCS Instance Types
- DCS Instance Specifications
-
Command Compatibility
- Commands Supported and Disabled by DCS for Redis 4.0
- Commands Supported and Disabled by DCS for Redis 5.0
- Commands Supported and Disabled by DCS for Redis 6.0
- Commands Supported and Disabled in Web CLI
- Command Restrictions
- Other Command Usage Restrictions
- Commands Supported and Disabled by DCS for Redis 3.0 (Discontinued)
- Commands Supported and Disabled by DCS for Memcached (Discontinued)
- Disaster Recovery and Multi-Active Solution
- Cache Engine Differences
- Comparing DCS and Open-Source Cache Services
- Notes and Constraints
- Billing
- Permissions Management
- Basic Concepts
- Related Services
- Billing
- Getting Started
-
User Guide
- Process of Using DCS
- Creating a User and Granting DCS Permissions
- Buying a DCS Redis Instance
-
Accessing a DCS Redis Instance
- Configuring Redis Network Connections
- Controlling DCS Redis Access
-
Connecting to Redis on a Client
- Connecting to Redis on redis-cli
- Connecting to Redis on Jedis (Java)
- Connecting to Redis on Lettuce (Java)
- Connecting to Redis on Redisson (Java)
- Connecting to Redis on redis-py (Python)
- Connecting to Redis on go-redis (Go)
- Connecting to Redis on hiredis (C++)
- Connecting to Redis on StackExchange.Redis (C#)
- Connecting to Redis on phpredis (PHP)
- Connecting to Redis on predis (PHP)
- Connecting to Redis on ioredis (Node.js)
- Connecting to Redis on the Console
- Public Access to a DCS Redis 3.0 Instance (Discontinued)
- Accessing a DCS Memcached Instance (Discontinued)
-
Managing Instances
- Viewing and Modifying Basic Settings of a DCS Instance
- Viewing DCS Background Tasks
- Viewing Client Connection Information of a DCS Instance
- Modifying Configuration Parameters of a DCS Instance
- Configuring DCS Instance Parameter Templates
- Configuring DCS Instance Tags
- Renaming Critical Commands for DCS Instances
- Exporting a DCS Instance List
- Performing a Master/Standby Switchover for a DCS Instance
- Managing DCS Instance Shards and Replicas
- Backing Up or Restoring Instance Data
- Changing an Instance
- Managing Lifecycle of an Instance
- Diagnosing and Analyzing an Instance
- Migrating Instance Data
-
Testing Instance Performance
- Testing Redis Performance Using memtier_benchmark
- Testing Redis Performance Using redis-benchmark
- Comparing redis-benchmark and memtier_benchmark
-
Reference for a Redis Performance Test
- Test Data of Master/Standby DCS Redis 3.0 Instances
- Test Data of Proxy Cluster DCS Redis 3.0 Instances
- Test Data of Master/Standby DCS Redis 4.0 or 5.0 Instances
- Test Data of Proxy Cluster DCS Redis 4.0 or 5.0 Instances
- Test Data of Redis Cluster DCS Redis 4.0 or 5.0 Instances
- Test Data of Master/Standby DCS Redis 6.0 Instances
- Test Data of Redis Cluster DCS Redis 6.0 Instances
- Test Data of Redis Backup, Restoration, and Migration
- Applying for More DCS Quotas
- Viewing Monitoring Metrics and Configuring Alarms
- Viewing DCS Audit Logs
- Best Practices
-
API Reference
- Before You Start
- API Overview
- Calling APIs
- Examples
-
API V2
- Lifecycle Management
-
Instance Management
- Updating a Bandwidth Auto Scaling Policy
- Querying a Bandwidth Auto Scaling Policy
- Deleting a Bandwidth Auto Scaling Policy
- Querying Details of an Instance Parameter Modification Record
- Master/Standby Switchover
- Changing the Password
- Resetting a Password
- Querying DCS Instance Statuses
- Restarting DCS Instances or Clearing DCS Instance Data
- Querying Statistics of All Running Instances
- Enabling or Disabling Client IP Pass-through
- Modifying the Bandwidth of an Instance
- Enabling/Modifying Public Access
- Disabling Public Access to an Instance
- Switching Master/Replica Roles on a Cluster Shard
- Asynchronous Master/Replica Node Switchover
- Querying Whether Specifications of an Instance Can Be Increased
- Obtaining Shard Bandwidth of an Instance
- Modifying Instance Shard Bandwidth
- Asynchronously Exporting Instances
- Starting or Stopping a Specified Instance Node
- Obtaining the Instance Engine Version by Instance ID
- Upgrading the Minor Version of an Instance
- Shards and Replicas
- Parameter Management
- Backup and Restoration
-
Data Migration
- Switching IP
- Creating a Backup Import Task
- Listing Migration Tasks
- Deleting Data Migration Tasks
- Querying Details of a Data Migration Task
- Configuring Auto-Reconnect for Migration Tasks
- Stopping a Data Migration Task
- Querying the Progress of an Online Migration Task
- Creating an Online Data Migration Task
- Configuring an Online Data Migration Task
- Stopping Data Migration Tasks
- Stopping Synchronization of a Data Migration Task
- Querying the Migration Log List
- Restarting Online Migration Tasks in Batches
- Tag Management
-
Cache Analysis
- Querying Expired Key Scan Records
- Scanning for Expired Keys Immediately
- Creating a Big Key Analysis Task
- Listing Big Key Analysis Tasks
- Querying Big Key Analysis Details
- Deleting a Big Key Analysis Task
- Configuring Automatic Big Key Analysis
- Querying the Configurations of Automatic Big Key Analysis
- Creating a Hot Key Analysis Task
- Listing Hot Key Analysis Tasks
- Querying Hot Key Analysis Details
- Deleting a Hot Key Analysis Task
- Configuring Automatic Hot Key Analysis
- Querying the Configurations of Automatic Hot Key Analysis
- Creating an Expired Key Scan Task
- Querying Automatic Scanning Configuration
- Modifying Automatic Scanning Configuration
- Log Management
- Account Management
- Network Security
- Background Task Management
- Instance Diagnosis
- Template Management
- Other APIs
- Session Management
- Permissions Policies and Supported Actions
- Appendix
- Out-of-Date APIs (Unavailable Soon)
- SDK Reference
-
FAQs
- Instance Types/Versions
-
Feature
- What Are the CPU Specifications of DCS Instances?
- What Are Shard and Replica Quantities?
- Do DCS Redis Instances Limit the Size of a Key or Value?
- Can I Obtain the Addresses of the Nodes in a Cluster DCS Redis Instance?
- Does DCS for Redis Support Redis Clusters?
- What Are Redis Data Eviction Policies?
- Does DCS for Redis Support Read/Write Splitting?
- Does DCS for Redis Support Multi-DB?
- Does DCS Support External Extensions, Plug-ins, or Modules?
- Do DCS Redis Instances Support Data Persistence? What Is the Impact of Persistence?
- Do DCS Redis Instances Limite Data Quantity?
-
Security
- How Do I Configure a Security Group?
- Why Can't Security Groups Be Configured for DCS Redis 4.0/5.0/6.0 Basic Edition Instances?
- How Can I Secure My DCS Redis Instances?
- Does DCS for Redis Support SSL Encrypted Transmission?
- How Do I Enable or Disable SSL for Public Access to a DCS Redis 3.0 Instance?
- Does DCS Support Cross-AZ Deployment?
- Is a Password Required for Accessing an Instance? How Do I Set a Password?
- Sentinel Principle
- Does DCS Support Sentinels?
-
Client and Network Connection
- Does DCS Support Public Access?
- Troubleshooting Redis Connection Failures
- Does DCS Support Cross-VPC Access?
- Will I Be Charged for the EIP Used for Public Access to a DCS Redis Instance?
- Why Is "(error) NOAUTH Authentication required" Displayed When I Access a DCS Redis Instance?
- What Should I Do If Access to DCS Fails After Server Disconnects?
- Why Do Requests Sometimes Time Out in Clients?
- What Should I Do If an Error Is Returned When I Use the Jedis Connection Pool?
- How Do I Access a DCS Redis Instance Through Redis Desktop Manager?
- What If "ERR Unsupported CONFIG subcommand" is Displayed in SpringCloud?
- What Can I Do If I Fail to Access a DCS Instance Using Its Domain Name Address?
- Can I Access DCS Instances in a Local Environment?
- What Should Be Noted When Using Redis for Pub/Sub?
- Why Is Public Access of My DCS Redis 3.0 Instance Unintentionally Disabled?
- What Can I Do If Error "Cannot assign requested address" Is Returned When I Access Redis Using connect?
- Connection Pool Selection and Recommended Jedis Parameter Settings
- What Can I Do If a Lettuce 6.x Client Is Incompatible with My DCS Instance?
- Should I Use a Domain Name or an IP Address to Connect to a DCS Redis Instance?
- Is the Read-only Address of a Master/Standby Instance Connected to the Master or Standby Node?
-
Redis Usage
- Can I Change the CPU Architecture?
- Can I Change the AZ for an Instance?
- Can I Change the VPC and Subnet for a DCS Redis Instance?
- Can I Customize or Change the Port for Accessing a DCS Instance?
- Can I Modify the Connection Addresses for Accessing a DCS Instance?
- Why Do I Fail to Delete an Instance?
- Why Does It Take a Long Time to Start a Cluster DCS Instance?
- What Should I Do If an Error Occurs in redis_exporter?
- What Is Reserved Memory? How Do I Configure Reserved Memory?
- Why Is Available Memory Smaller Than Instance Cache Size?
- Why Is Redisson Distributed Lock Not Supported by DCS Proxy Cluster Redis 3.0 Instances?
- Does DCS for Redis Provide Backend Management Software?
- Can I Recover Deleted Data of a DCS Instance?
- Why Is Available Memory of Unused DCS Instances Less Than Total Memory and Why Is Memory Usage of Unused DCS Instances Greater Than Zero?
- How Do I Check Redis Memory Usage?
- Why Is the Capacity or Performance of a Shard of a Redis Cluster Instance Overloaded When That of the Instance Is Still Below the Bottleneck?
- Why Does an OOM Error Occur During a Redis Connection?
- What Clients Can I Use for Redis Cluster in Different Programming Languages?
- Why Do I Need to Configure Timeout for Redis Cluster?
- Why Am I Seeing a Timeout Error When Reading Data from Redis?
- Explaining and Using Hash Tags
- Why Does a Key Disappear in Redis?
- Will Cached Data Be Retained After an Instance Is Restarted?
- How Do I Know Whether an Instance Is Single-DB or Multi-DB?
- Notes and Procedure for Enabling Multi-DB for Proxy Cluster Instances
- How Do I Create a Multi-DB Proxy Cluster Instance?
-
Instance Scaling and Upgrade
- Can I Upgrade Version for a DCS Redis Instance, for Example, from Redis 4.0 to Redis 5.0?
- Upgrading a Redis 3.0 Instance
- Are Services Interrupted If Maintenance is Performed During the Maintenance Time Window?
- Are DCS Instances Stopped or Restarted During Specification Modification?
- What DCS Instance Type Changes Are Supported?
- Are Services Interrupted During Specification Modification?
- Why Do I Fail to Modify the Specifications for a DCS Instance?
- How Do I Reduce the Capacity of a DCS Instance?
- How Do I Add Shards to a Cluster DCS Redis Instance Without Changing the Memory?
- How Do I Handle an Error When I Use Lettuce to Connect to a Redis Cluster Instance After Specification Modification?
- Can I Expand a Single Shard of a Cluster Instance (Scale-Up)?
-
Data Backup, Export, and Migration
- Can I Migrate Data from a Lower Redis Version to a Higher One?
- What Should I Consider When Transferring or Operating Data Between Different OSs?
- Can I Migrate Data from a Multi-DB Source Redis Instance to a Cluster DCS Redis Instance?
- What Are the Constraints and Precautions for Migrating Redis Data to a Cluster Instance?
- What Should I Consider for Online Migration?
- Can I Perform Online Migration Without Any Service Interruption?
- What If "Disconnecting timedout slave" and "overcoming of output buffer limits" Are Reported on the Source Instance During Online Migration?
- How Do I Export DCS Redis Instance Data?
- Why Is Memory of a DCS Redis Instance Unchanged After Data Migration Using Rump, Even If No Error Message Is Returned?
- Can I Export Backup Data of DCS Redis Instances to RDB Files on the Console?
- Where Are DCS Instance Backup Files Stored? How Many of Them Can Be Stored?
- Is All Data in a DCS Redis Instance Migrated During Online Migration?
- When Will AOF Rewrites Be Triggered?
- What Are the Common Causes of Redis Migration Failures?
- Can I Migrate Data to Multiple Target Instances in One Migration Task?
- How Do I Enable the SYNC and PSYNC Commands?
- Will the Same Keys Be Overwritten During Data Migration or Backup Import?
- Why Does Redis Cluster Migration Fail If It Uses Built-in Keys and Cross-Slot Lua Scripts?
- Handling Migration Errors
- Troubleshooting Data Migration Failures
- How Do I Migrate Memcached Data?
- Can I Migrate Data Between DCS Memcached and Redis Instances?
-
Big/Hot Key Analysis and Expired Key Scan
- What Are Big Keys and Hot Keys?
- What Is the Impact of Big Keys or Hot Keys?
- How Do I Avoid Big Keys and Hot Keys?
- How Do I Analyze the Hot Keys of a DCS Redis 3.0 Instance?
- How Do I Detect Big Keys and Hot Keys in Advance?
- How Does DCS Delete Expired Keys?
- How Long Are Keys Stored? How Do I Set Key Expiration?
- Why Does Memory Usage Decrease After Big Key Analysis Is Performed on Redis?
-
Redis Commands
- Does DCS for Redis Support Command Audits?
- How Do I Clear Redis Data?
- How Do I Find Specified Keys and Traverse All Keys?
- Why Do I Fail to Execute Some Redis Commands?
- Why is "permission denied" Returned When I Run the KEYS Command in Web CLI?
- How Do I Rename High-Risk Commands?
- Does DCS for Redis Support Pipelining?
- Does DCS for Redis Support the INCR and EXPIRE Commands?
- Why Does a Redis Command Fail to Take Effect?
- Is There a Time Limit on Executing Redis Commands? What Will Happen If a Command Times Out?
- Can I Configure Redis Keys to Be Case-Insensitive?
- Common Web CLI Errors
-
Monitoring and Alarm
- Why Is CPU Usage of a DCS Redis Instance 100%?
- How Do I View Current Concurrent Connections and Maximum Connections of a DCS Redis Instance?
- What Should I Do If the Monitoring Data of a DCS Redis Instance Is Abnormal?
- Why Is Used Memory Greater Than Available Memory?
- Why Does Bandwidth Usage Exceed 100%?
- Why Is the Rejected Connections Metric Displayed?
- Why Is Flow Control Triggered? How Do I Handle It?
- Master/Standby Switchover
- Instance Creation and Permissions
-
Memcached Usage
- Can I Dump DCS Memcached Instance Data for Analysis?
- What Memcached Version Is Compatible with DCS for Memcached?
- What Data Structures Does DCS for Memcached Support?
- Does DCS for Memcached Support Public Access?
- Can I Modify Configuration Parameters of DCS Memcached Instances?
- What Are the Differences Between DCS for Memcached and Self-Hosted Memcached?
- What Policies Does DCS for Memcached Use to Deal with Expired Data?
- How Should I Select AZs When Creating a DCS Memcached Instance?
- Troubleshooting
- Videos
-
More Documents
-
User Guide (ME-Abu Dhabi Region)
- Service Overview
- Getting Started
- Operation Guide
- Monitoring
- Auditing
-
FAQs
-
Client and Network Connection
- Security Group Configurations
- Does DCS Support Public Access?
- Does DCS Support Cross-VPC Access?
- What Should I Do If Access to DCS Fails After Server Disconnects?
- Why Do Requests Sometimes Time Out in Clients?
- What Should I Do If an Error Is Returned When I Use the Jedis Connection Pool?
- Why Is "ERR unknown command" Displayed When I Access a DCS Redis Instance Through a Redis Client?
- How Do I Access a DCS Redis Instance Through Redis Desktop Manager?
- What If "ERR Unsupported CONFIG subcommand" is Displayed in SpringCloud?
- How Do I Troubleshoot Redis Connection Failures?
- What Should Be Noted When Using Redis for Pub/Sub?
-
Redis Usage
- Why Is CPU Usage of a DCS Redis Instance 100%?
- Can I Change the VPC and Subnet for a DCS Redis Instance?
- Why Aren't Security Groups Configured for DCS Redis 4.0 and 5.0 Instances?
- Do DCS Redis Instances Limit the Size of a Key or Value?
- Can I Obtain the Addresses of the Nodes in a Cluster DCS Redis Instance?
- Why Is Available Memory of a DCS Redis 3.0 Instance Smaller Than Instance Cache Size?
- Does DCS for Redis Support Multiple Databases?
- Does DCS for Redis Support Redis Clusters?
- Does DCS for Redis Support Sentinel?
- What Is the Default Data Eviction Policy?
- What Should I Do If an Error Occurs in Redis Exporter?
- Why Is Memory Usage More Than 100%?
- Why Is Redisson Distributed Lock Not Supported by DCS Proxy Cluster Redis 3.0 Instances?
- Can I Customize or Change the Port for Accessing a DCS Instance?
- Can I Modify the Connection Addresses for Accessing a DCS Instance?
- Does DCS Support Cross-AZ Deployment?
- Why Does It Take a Long Time to Start a Cluster DCS Instance?
- What If Redis Commands Are Incompatible with DCS for Redis?
- Does DCS for Redis Provide Backend Management Software?
- Why Is Memory of a DCS Redis Instance Used Up by Just a Few Keys?
- Can I Recover Data from Deleted DCS Instances?
-
Redis Commands
- How Do I Clear Redis Data?
- How Do I Rename High-Risk Commands?
- Does DCS for Redis Support Pipelining?
- Does DCS for Redis Support the INCR and EXPIRE Commands?
- Why Do I Fail to Execute Some Redis Commands?
- Why Does a Redis Command Fail to Take Effect?
- Is There a Time Limit on Executing Redis Commands? What Will Happen If a Command Times Out?
-
Instance Scaling and Upgrade
- Can DCS Redis Instances Be Upgraded, for Example, from Redis 3.0 to Redis 4.0 or 5.0?
- Are Services Interrupted If Maintenance is Performed During the Maintenance Time Window?
- Are Instance Resources Affected During Specification Modification?
- Are Services Interrupted During Specification Modification?
- Why Do I Fail to Modify the Specifications for a DCS Redis Instance?
- Monitoring and Alarm
- Data Backup, Export, and Migration
- Master/Standby Switchover
-
Client and Network Connection
- Change History
- API Reference (ME-Abu Dhabi Region)
-
User Guide (Paris Region)
- Service Overview
- Getting Started
- Operation Guide
- Monitoring
- Auditing
-
FAQs
-
Client and Network Connection
- Security Group Configurations
- Does DCS Support Public Access?
- Does DCS Support Cross-VPC Access?
- What Should I Do If Access to DCS Fails After Server Disconnects?
- Why Do Requests Sometimes Time Out in Clients?
- What Should I Do If an Error Is Returned When I Use the Jedis Connection Pool?
- Why Is "ERR unknown command" Displayed When I Access a DCS Redis Instance Through a Redis Client?
- How Do I Access a DCS Redis Instance Through Redis Desktop Manager?
- What If "ERR Unsupported CONFIG subcommand" is Displayed in SpringCloud?
- How Do I Troubleshoot Redis Connection Failures?
- What Should Be Noted When Using Redis for Pub/Sub?
-
Redis Usage
- Why Is CPU Usage of a DCS Redis Instance 100%?
- Can I Change the VPC and Subnet for a DCS Redis Instance?
- Do DCS Redis Instances Limit the Size of a Key or Value?
- Why Is Available Memory of a DCS Redis 3.0 Instance Smaller Than Instance Cache Size?
- Does DCS for Redis Support Multiple Databases?
- Does DCS for Redis Support Redis Clusters?
- Does DCS for Redis Support Sentinel?
- What Is the Default Data Eviction Policy?
- What Should I Do If an Error Occurs in Redis Exporter?
- Why Is Memory Usage More Than 100%?
- Why Is Redisson Distributed Lock Not Supported by DCS Proxy Cluster Redis 3.0 Instances?
- Can I Customize or Change the Port for Accessing a DCS Instance?
- Can I Modify the Connection Addresses for Accessing a DCS Instance?
- Does DCS Support Cross-AZ Deployment?
- Why Does It Take a Long Time to Start a Cluster DCS Instance?
- Why Is Memory of a DCS Redis Instance Used Up by Just a Few Keys?
- Can I Recover Data from Deleted DCS Instances?
- Why Is "Error in execution" Returned When I Access Redis?
-
Redis Commands
- Why is "permission denied" Returned When I Run the Keys Command in Web CLI?
- How Do I Clear Redis Data?
- Does DCS for Redis Support the INCR and EXPIRE Commands?
- Why Do I Fail to Execute Some Redis Commands?
- Why Does a Redis Command Fail to Take Effect?
- Is There a Time Limit on Executing Redis Commands? What Will Happen If a Command Times Out?
-
Instance Scaling and Upgrade
- Can DCS Redis Instances Be Upgraded, for Example, from Redis 3.0 to Redis 4.0 or 5.0?
- Are Services Interrupted If Maintenance is Performed During the Maintenance Time Window?
- Are Instance Resources Affected During Specification Modification?
- Are Services Interrupted During Specification Modification?
- Why Do I Fail to Modify the Specifications for a DCS Redis or Memcached Instance?
- Data Backup, Export, and Migration
- Master/Standby Switchover
-
Memcached Usage
- Can I Dump DCS Memcached Instance Data for Analysis?
- What Memcached Version Is Compatible with DCS for Memcached?
- What Data Structures Does DCS for Memcached Support?
- Does DCS for Memcached Support Public Access?
- Can I Modify Configuration Parameters of DCS Memcached Instances?
- What Are the Differences Between DCS for Memcached and Self-Hosted Memcached?
- What Policies Does DCS for Memcached Use to Deal with Expired Data?
- How Should I Select AZs When Creating a DCS Memcached Instance?
-
Client and Network Connection
- Change History
-
API Reference (Paris Region)
- Before You Start
- API Overview
- Calling APIs
-
API V2
- Lifecycle Management
- Instance Management
- Shards and Replicas
- Parameter Management
- Backup and Restoration
-
Data Migration
- Creating a Backup Import Task
- Listing Migration Tasks
- Deleting Data Migration Tasks
- Querying Details of a Data Migration Task
- Configuring Auto-Reconnect for Migration Tasks
- Stopping a Data Migration Task
- Querying the Progress of an Online Migration Task
- Creating an Online Data Migration Task
- Configuring an Online Data Migration Task
- Stopping Data Migration Tasks
- Stopping Synchronization of a Data Migration Task
-
Cache Analysis
- Creating a Big Key Analysis Task
- Listing Big Key Analysis Tasks
- Querying Big Key Analysis Details
- Deleting a Big Key Analysis Task
- Configuring Automatic Big Key Analysis
- Querying the Configurations of Automatic Big Key Analysis
- Creating a Hot Key Analysis Task
- Listing Hot Key Analysis Tasks
- Querying Hot Key Analysis Details
- Deleting a Hot Key Analysis Task
- Configuring Automatic Hot Key Analysis
- Querying the Configurations of Automatic Hot Key Analysis
- Log Management
- Network Security
- Background Task Management
- Instance Diagnosis
- Template Management
- Other APIs
- Outdated APIs (V1)
- Permissions Policies and Supported Actions
- Appendix
- Change History
-
User Guide (Kuala Lumpur Region)
-
Service Overview
- What Is DCS?
- Application Scenarios
- DCS Instance Types
- DCS Instance Specifications
- Command Compatibility
- Disaster Recovery and Multi-Active Solution
- Comparing Redis Versions
- Comparing Redis and Memcached
- Comparing DCS and Open-Source Cache Services
- Notes and Constraints
- Basic Concepts
- Permissions
- Related Services
- Permissions Management
- Process of Using DCS
-
Getting Started
- Creating an Instance
-
Accessing an Instance
- Network Conditions for Accessing DCS Redis
- Accessing a DCS Redis Instance Through redis-cli
- Access in Different Languages
- Accessing a DCS Redis 4.0/5.0/6.0 Instance on the Console
- Accessing a DCS Memcached Instance (Discontinued)
- Viewing Details of a DCS Instance
- Operating DCS Instances
-
Managing DCS Instances
- Configuration Notice
- Modifying Configuration Parameters
- Modifying the Security Group
- Viewing Background Tasks
- Viewing Data Storage Statistics of a DCS Redis 3.0 Proxy Cluster Instance
- Managing Tags
- Managing Shards and Replicas
- Analyzing Big Keys and Hot Keys
- Managing IP Address Whitelist
- Viewing Redis Slow Queries
- Viewing Redis Run Logs
- Diagnosing an Instance
- Transmitting DCS Redis Data with Encryption Using SSL
- Backing Up and Restoring DCS Instances
- Migrating Data with DCS
- Managing Passwords
- Parameter Templates
- Monitoring
- Auditing
- Data Migration Guide
-
FAQs
- Instance Types/Versions
-
Client and Network Connection
- Security Group Configurations
- Does DCS Support Access over Public Networks?
- Does DCS Support Cross-VPC Access?
- Why Is "(error) NOAUTH Authentication required" Displayed When I Access a DCS Redis Instance?
- What Should I Do If Access to DCS Fails After Server Disconnects?
- Why Do Requests Sometimes Time Out in Clients?
- What Should I Do If an Error Is Returned When I Use the Jedis Connection Pool?
- Why Is "ERR unknown command" Displayed When I Access a DCS Redis Instance Through a Redis Client?
- How Do I Access a DCS Redis Instance Through Redis Desktop Manager?
- What If "ERR Unsupported CONFIG subcommand" is Displayed in SpringCloud?
- Is a Password Required for Accessing an Instance? How Do I Set a Password?
- What Should Be Noted When Using Redis for Pub/Sub?
- How Do I Troubleshoot Redis Connection Failures?
- What Can I Do If Error "Cannot assign requested address" Is Returned When I Access Redis Using connect?
- Connection Pool Selection and Recommended Jedis Parameter Settings
-
Redis Usage
- What Are Shard and Replica Quantities?
- Why Is CPU Usage of a DCS Redis Instance 100%?
- Can I Change the VPC and Subnet for a DCS Redis Instance?
- Why Aren't Security Groups Configured for DCS Redis 4.0/5.0/6.0 Instances?
- Do DCS Redis Instances Limit the Size of a Key or Value?
- Can I Obtain the Addresses of the Nodes in a Cluster DCS Redis Instance?
- Why Is Available Memory Smaller Than Instance Cache Size?
- Does DCS for Redis Support Read/Write Splitting?How Do I Configure Read/Write Splitting for a Redis Cluster Instance?
- Does DCS for Redis Support Multiple Databases?
- Does DCS for Redis Support Redis Clusters?
- What Is Sentinel?
- Does DCS for Redis Support Sentinel?
- What Is the Default Data Eviction Policy?
- What Should I Do If an Error Occurs in Redis Exporter?
- How Can I Secure My DCS Redis Instances?
- Why Is Redisson Distributed Lock Not Supported by DCS Proxy Cluster Redis 3.0 Instances?
- Can I Customize or Change the Port for Accessing a DCS Instance?
- Can I Modify the Connection Addresses for Accessing a DCS Instance?
- Why Do I Fail to Delete an Instance?
- Does DCS Support Cross-AZ Deployment?
- Why Does It Take a Long Time to Start a Cluster DCS Instance?
- Does DCS for Redis Provide Backend Management Software?
- Can I Recover Data from Deleted DCS Instances?
- Does DCS for Redis Support SSL Encrypted Transmission?
- Why Is Available Memory of Unused DCS Instances Less Than Total Memory and Why Is Memory Usage of Unused DCS Instances Greater Than Zero?
- How Do I Check Redis Memory Usage?
- Why Is the Capacity or Performance of a Shard of a Redis Cluster Instance Overloaded When That of the Instance Is Still Below the Bottleneck?
- Does DCS Support External Extensions, Plug-ins, or Modules?
- Why Is "Error in execution" Returned When I Access Redis?
- Why Does a Key Disappear in Redis?
- Why Does an OOM Error Occur During a Redis Connection?
- What Clients Can I Use for Redis Cluster in Different Programming Languages?
- Why Do I Need to Configure Timeout for Redis Cluster?
- Can I Change the AZ for an Instance?
- Explaining and Using Hash Tags
- Will Cached Data Be Retained After an Instance Is Restarted?
-
Redis Commands
- How Do I Clear Redis Data?
- How Do I Find Specified Keys and Traverse All Keys?
- Why is "permission denied" Returned When I Run the KEYS Command in Web CLI?
- How Do I Disable High-Risk Commands?
- Does DCS for Redis Support Pipelining?
- Does DCS for Redis Support the INCR and EXPIRE Commands?
- Why Do I Fail to Execute Some Redis Commands?
- Why Does a Redis Command Fail to Take Effect?
- Is There a Time Limit on Executing Redis Commands? What Will Happen If a Command Times Out?
- Can I Configure Redis Keys to Be Case-Insensitive?
- Can I View the Most Frequently Used Redis Commands?
- Common Web CLI Errors
-
Instance Scaling and Upgrade
- Can DCS Redis Instances Be Upgraded, for Example, from Redis 4.0 to 5.0?
- Are Services Interrupted If Maintenance is Performed During the Maintenance Time Window?
- Are Instances Stopped or Restarted During Specification Modification?
- Are Services Interrupted During Specification Modification?
- Why Can't I Modify Specifications for a DCS Redis/Memcached Instance?
- How Do I Reduce the Capacity of a DCS Instance?
- How Do I Handle an Error When I Use Lettuce to Connect to a Redis Cluster Instance After Specification Modification?
-
Monitoring and Alarm
- How Do I View Current Concurrent Connections and Maximum Connections of a DCS Redis Instance?
- Does Redis Support Command Audits?
- What Should I Do If the Monitoring Data of a DCS Redis Instance Is Abnormal?
- Why Is Available Memory of Unused DCS Instances Less Than Total Memory and Why Is Memory Usage of Unused DCS Instances Greater Than Zero?
- Why Is Used Memory Greater Than Available Memory?
- Why Does Bandwidth Usage Exceed 100%?
- Why Is the Rejected Connections Metric Displayed?
- Why Is Flow Control Triggered? How Do I Handle It?
-
Data Backup, Export, and Migration
- How Do I Export DCS Redis Instance Data?
- Can I Export Backup Data of DCS Redis Instances to RDB Files Using the Console?
- Why Are Processes Frequently Killed During Data Migration?
- Is All Data in a DCS Redis Instance Migrated During Online Migration?
- Do DCS Redis Instances Support Data Persistence? What Is the Impact of Persistence?
- When Will AOF Rewrites Be Triggered?
- Can I Migrate Data to Multiple Target Instances in One Migration Task?
- How Do I Enable the SYNC and PSYNC Commands?
- Will the Same Keys Be Overwritten During Data Migration or Backup Import?
- Online Migration with Rump
- What Should I Consider When Transferring or Operating Data Between Different OSs?
- Can I Migrate Data from a Multi-DB Source Redis Instance to a Cluster DCS Redis Instance?
- How Can I Migrate Partial Data?
- What Are the Constraints and Precautions for Migrating Redis Data to a Cluster Instance?
- What Should I Consider for Online Migration?
- Can I Perform Online Migration Without Any Service Interruption?
- What If "Disconnecting timedout slave" and "overcoming of output buffer limits" Are Reported on the Source Instance During Online Migration?
- Why Is Memory of a DCS Redis Instance Unchanged After Data Migration Using Rump, Even If No Error Message Is Returned?
- Can I Migrate Data from a Lower Redis Version to a Higher One?
- How Do I Migrate Memcached Data?
- Big/Hot Key Analysis
- Master/Standby Switchover
-
Memcached Usage
- Can I Dump DCS Memcached Instance Data for Analysis?
- What Memcached Version Is Compatible with DCS for Memcached?
- What Data Structures Does DCS for Memcached Support?
- Does DCS for Memcached Support Public Access?
- Can I Modify Configuration Parameters of DCS Memcached Instances?
- What Are the Differences Between DCS for Memcached and Self-Hosted Memcached?
- What Policies Does DCS for Memcached Use to Deal with Expired Data?
- How Should I Select AZs When Creating a DCS Memcached Instance?
- Troubleshooting
- Change History
-
Service Overview
- API Reference (Kuala Lumpur Region)
-
API Reference (Ankara Region)
- Before You Start
- API Overview
- Calling APIs
-
APIs V2 (Recommended)
- Lifecycle Management
- Instance Management
- Shards and Replicas
- Parameter Management
- Backup and Restoration
-
Data Migration
- Creating a Backup Import Task
- Listing Migration Tasks
- Deleting Data Migration Tasks
- Querying Details of a Data Migration Task
- Stopping a Data Migration Task
- Querying the Progress of an Online Migration Task
- Creating an Online Data Migration Task
- Configuring an Online Data Migration Task
- Stopping Data Migration Tasks
- Log Management
- Background Task Management
- Other APIs
- Outdated APIs (V1)
- Permissions Policies and Supported Actions
- Appendix
-
User Guide (Ankara Region)
- Service Overview
-
Getting Started
- Creating an Instance
-
Accessing an Instance
- Network Conditions for Accessing DCS Redis
- Accessing a DCS Redis Instance Through redis-cli
- Access in Different Languages
- Accessing a DCS Redis Instance on the Console
- Viewing Details of a DCS Instance
-
User Guide
- Permissions Management
- Operating DCS Instances
-
Managing DCS Instances
- Configuration Notice
- Modifying Configuration Parameters
- Modifying Maintenance Time Window
- Modifying the Security Group
- Viewing Background Tasks
- Viewing Data Storage Statistics of a DCS Redis 3.0 Proxy Cluster Instance
- Managing Shards and Replicas
- Analyzing Big Keys and Hot Keys
- Scanning and Deleting Expired Keys in a DCS Redis Instance
- Managing IP Address Whitelist
- Viewing Redis Run Logs
- Diagnosing an Instance
- Backing Up and Restoring DCS Instances
- Migrating Data with DCS
- Managing Passwords
- Monitoring
- Best Practices
-
FAQs
- Instance Types/Versions
-
Client and Network Connection
- Security Group Configurations
- Does DCS Support Access at EIPs?
- Does DCS Support Cross-VPC Access?
- What Should I Do If Access to DCS Fails After Server Disconnects?
- Why Do Requests Sometimes Time Out in Clients?
- What Should I Do If an Error Is Returned When I Use the Jedis Connection Pool?
- Why Is "ERR unknown command" Displayed When I Access a DCS Redis Instance Through a Redis Client?
- How Do I Access a DCS Redis Instance Through Redis Desktop Manager?
- What If "ERR Unsupported CONFIG subcommand" is Displayed in SpringCloud?
- How Do I Troubleshoot Redis Connection Failures?
- What Should Be Noted When Using Redis for Pub/Sub?
- Should I Use a Domain Name or an IP Address to Connect to a DCS Redis Instance?
-
Redis Usage
- Why Is CPU Usage of a DCS Redis Instance 100%?
- Can I Change the VPC and Subnet for a DCS Redis Instance?
- Why Aren't Security Groups Configured for DCS Redis 4.0 and Later Instances?
- Do DCS Redis Instances Limit the Size of a Key or Value?
- Can I Obtain the Addresses of the Nodes in a Cluster DCS Redis Instance?
- Why Is Available Memory Smaller Than Instance Cache Size?
- Does DCS for Redis Support Multiple Databases?
- Does DCS for Redis Support Redis Clusters?
- Does DCS for Redis Support Sentinel?
- What Is the Default Data Eviction Policy?
- What Should I Do If an Error Occurs in Redis Exporter?
- Why Is Redisson Distributed Lock Not Supported by DCS Proxy Cluster Redis 3.0 Instances?
- Can I Customize or Change the Port for Accessing a DCS Instance?
- Can I Modify the Connection Addresses for Accessing a DCS Instance?
- Does DCS Support Cross-AZ Deployment?
- Why Does It Take a Long Time to Start a Cluster DCS Instance?
- What If Redis Commands Are Incompatible with DCS for Redis?
- Does DCS for Redis Provide Backend Management Software?
- Why Is Memory of a DCS Redis Instance Used Up by Just a Few Keys?
- Can I Recover Data from Deleted DCS Instances?
- Why Is "Error in execution" Returned When I Access Redis?
-
Redis Commands
- How Do I Clear Redis Data?
- How Do I Disable High-Risk Commands?
- Does DCS for Redis Support Pipelining?
- Does DCS for Redis Support the INCR and EXPIRE Commands?
- Why Do I Fail to Execute Some Redis Commands?
- Why Does a Redis Command Fail to Take Effect?
- Is There a Time Limit on Executing Redis Commands? What Will Happen If a Command Times Out?
-
Instance Scaling and Upgrade
- Can DCS Redis Instances Be Upgraded, for Example, from Redis 4.0 to 5.0?
- Are Services Interrupted If Maintenance is Performed During the Maintenance Time Window?
- Are Instances Stopped or Restarted During Specification Modification?
- Are Services Interrupted During Specification Modification?
- Why Can't I Modify Specifications for a DCS Redis Instance?
-
Monitoring and Alarm
- Does Redis Support Command Audits?
- What Should I Do If the Monitoring Data of a DCS Redis Instance Is Abnormal?
- Why Is Available Memory of Unused DCS Instances Less Than Total Memory and Why Is Memory Usage of Unused DCS Instances Greater Than Zero?
- Why Is Used Memory Greater Than Available Memory?
- Why Is Flow Control Triggered? How Do I Handle It?
-
Data Backup, Export, and Migration
- How Do I Export DCS Redis Instance Data?
- Can I Export Backup Data of DCS Redis Instances to RDB Files Using the Console?
- Why Are Processes Frequently Killed During Data Migration?
- Is All Data in a DCS Redis Instance Migrated During Online Migration?
- Do DCS Redis Instances Support Data Persistence? What Is the Impact of Persistence?
- When Will AOF Rewrites Be Triggered?
- Online Migration with Rump
-
Big/Hot Key Analysis and Expired Key Scan
- What Are Big Keys and Hot Keys?
- What Is the Impact of Big Keys or Hot Keys?
- How Do I Avoid Big Keys and Hot Keys?
- How Do I Analyze the Hot Keys of a DCS Redis 3.0 Instance?
- How Do I Detect Big Keys and Hot Keys in Advance?
- How Does DCS Delete Expired Keys?
- How Long Are Keys Stored? How Do I Set Key Expiration?
- Master/Standby Switchover
-
User Guide (ME-Abu Dhabi Region)
- General Reference
Copied.
Suggestions on Using DCS
Service Usage
Principle |
Description |
Remarks |
---|---|---|
Separate hot data from cold data. |
You can store frequently accessed data (hot data) in Redis, and infrequently accessed data (cold data) in databases such as MySQL and Elasticsearch. |
Infrequently accessed data stored in the memory occupies Redis space and does not accelerate access. |
Differentiate service data. |
Store unrelated service data in different Redis instances. |
This prevents services from affecting each other and prevents single instances from being too large. This also enables you to quickly restore services in case of faults. |
Do not use the SELECT command for multi-DB on a single instance. |
Multi-DB on a single Redis instance does not provide good isolation and is no longer in active development by open-source Redis. You are advised not to depend on this feature in the future. |
|
Set a proper eviction policy. |
If the eviction policy is set properly, Redis can still function when the memory is used up unexpectedly. |
You can that meets your service requirements. The default eviction policy used by DCS is volatile-lru. |
Use Redis as cache. |
Do not over-rely on Redis transactions. |
After a transaction is executed, it cannot be rolled back. |
If data is abnormal, clear the cache for data restoration. |
Redis does not have a mechanism or protocol to ensure strong data consistency. Therefore, services cannot over-rely on the accuracy of Redis data. |
|
When using Redis as cache, set expiration on all keys. Do not use Redis as a database. |
Set expiration as required, but a longer expiration is not necessarily better. |
|
Prevent cache breakdown. |
Use Redis together with local cache. Store frequently used data in the local cache and regularly update it asynchronously. |
- |
Prevent cache penetration. |
Non-critical path operations are passed through to the database. Limit the rate of access to the database. |
- |
Do not use Redis as a message queue. |
In pub/sub scenarios, do not use Redis as a message queue. |
|
Select proper specifications. |
If service growth causes increases in Redis requests, use Proxy Cluster or Redis Cluster instances. |
Scaling up single-node and master/standby instances only expands the memory and bandwidth, but cannot enhance the computing capabilities. |
In production, do not use single-node instances. Use master/standby or cluster instances. |
- |
|
Do not use large specifications for master/standby instances. |
Redis forks a process when rewriting AOF or running the BGSAVE command. If the memory is too large, responses will be slow. |
|
Prepare for degradation or disaster recovery. |
When a cache miss occurs, data is obtained from the database. Alternatively, when a fault occurs, allow another Redis to take over services automatically. |
- |
Data Design
Category |
Principle |
Description |
Remarks |
---|---|---|---|
Keys |
Keep the format consistent. |
Use the service name or database name as the prefix, followed by colons (:). Ensure that key names have clear meanings. |
For example: service name:sub-service name:ID. |
Minimize the key length. |
Minimize the key length without compromising clarity of the meaning. Abbreviate common words. For example, user can be abbreviated to u, and messages can be abbreviated to msg. |
Use up to 128 bytes. The shorter the better. |
|
Do not use special characters except braces ({}). |
Do not use special characters such as spaces, line brakes, single or double quotation marks, and other escape characters. |
Redis uses braces ({}) to signify hash tags. Braces in key names must be used correctly to avoid unbalanced shards. |
|
Values |
Use appropriate value sizes. |
Keep the value of a key within 10 KB. |
Large values may cause unbalanced shards, hot keys, traffic or CPU usage surges, and scaling or migration failures. These problems can be avoided by proper design. |
Use appropriate number of elements in each key. |
Do not include too many elements in each Hash, Set, or List. It is recommended that each key contain up to 5000 elements. |
Time complexity of some commands, such as HGETALL, is directly related to the quantity of elements in a key. If commands whose time complexity is O(N) or higher are frequently executed and a key has a large number of elements, there may be slow requests, unbalanced shards, or hot keys. |
|
Use appropriate data types. |
This saves memory and bandwidth. |
For example, to store multiple attributes of a user, you can use multiple keys, such as set u:1:name "X" and set u:1:age 20. To save memory usage, you can also use the HMSET command to set multiple fields to their respective values in the hash stored at one key. |
|
Set appropriate timeout. |
Do not set a large number of keys to expire at the same time. |
When setting key expiration, add or subtract a random offset from a base expiry time, to prevent a large number of keys from expiring at the same time. Otherwise, CPU usage will be high at the expiry time. |
Command Usage
Principle |
Description |
Remarks |
---|---|---|
Exercise caution when using commands with time complexity of O(N). |
Pay attention to the value of N for commands whose time complexity is O(N). If the value of N is too large, Redis will be blocked and the CPU usage will be high. |
For example, the HGETALL, LRANGE, SMEMBERS, ZRANGE, and SINTER commands will consume a large number of CPU resources if there is a large number of elements. Alternatively, you can use SCAN sister commands, such as HSCAN, SSCAN, and ZSCAN commands. |
Do not use high-risk commands. |
Do not use high-risk commands such as FLUSHALL, KEYS, and HGETALL, or rename them. |
For details, see section "Renaming Commands" in the User Guide. |
Exercise caution when using the SELECT command. |
Redis does not have a strong support for multi-DB. Redis is single-threaded, so databases interfere with each other. You are advised to use multiple Redis instances instead of using multi-DB on one instance. |
- |
Use batch operations to improve efficiency. |
For batch operations, use the MGET command, MSET command, or pipelining to improve efficiency, but do not include a large number of elements in one batch operation. |
MGET command, MSET command, and pipelining differ in the following ways:
|
Do not use time-consuming code in Lua scripts. |
The timeout of Lua scripts is 5s, so avoid using long scripts. |
Long scripts: time-consuming sleep statements or long loops. |
Do not use random functions in Lua scripts. |
When invoking a Lua script, do not use random functions to specify keys. Otherwise, the execution results will be inconsistent between the master and standby nodes, causing data inconsistency. |
- |
Follow the rules for using Lua on cluster instances. |
Follow the rules for using Lua on cluster instances. |
|
Optimize multi-key operation commands such as MGET and HMGET with parallel processing and non-blocking I/O. |
Some clients do not treat these commands differently. Keys in such a command are processed sequentially before their values are returned in a batch. This process is slow and can be optimized through pipelining. |
For example, running the MGET command on a cluster using Lettuce is dozens of times faster than using Jedis, because Lettuce uses pipelining and non-blocking I/O while Jedis does not have a special plan itself. To use Jedis in such scenarios, you need to implement slot grouping and pipelining by yourself. |
Do not use the DEL command to directly delete big keys. |
Deleting big keys, especially Sets, using DEL blocks other requests. |
In Redis 4.0 and later, you can use the UNLINK command to delete big keys safely. This command is non-blocking. In versions earlier than Redis 4.0:
|
SDK Usage
Principle |
Description |
Remarks |
---|---|---|
Use connection pools and persistent connections ("pconnect" in Redis terminology). |
The performance of short connections ("connect" in Redis terminology) is poor. Use clients with connection pools. |
Frequently connecting to and disconnecting from Redis will unnecessarily consume a lot of system resources and can cause host breakdown in extreme cases. Ensure that the Redis client connection pool is correctly configured. |
The client must perform fault tolerance in case of faults or slow requests. |
The client should have fault tolerance and retry mechanisms in case of master/standby switchover, command timeout, or slow requests caused by network fluctuation or configuration errors. |
|
Set appropriate interval and number of retries. |
Do not set the retry interval too short or too long. |
|
Avoid using Lettuce. |
Lettuce is the default client of Spring and stands out in terms of performance. However, Jedis is more stable because it is better at detecting and handling connection errors and network fluctuations. Therefore, Jedis is recommended. |
Lettuce has the following problems:
|
O&M and Management
Principle |
Description |
Remarks |
---|---|---|
Use passwords in production. |
In production systems, use passwords to protect Redis. |
- |
Ensure security on the live network. |
Do not allow unauthorized developers to connect to redis-server in the production environment. |
- |
Verify the fault handling capability or disaster recovery logic of the service. |
Organize drills in the test environment or pre-production environment to verify service reliability in Redis master/standby switchover, breakdown, or scaling scenarios. |
Master/standby switchover can be triggered manually on the console. It is strongly recommended that you use Lettuce for these drills. |
Configure monitoring. |
Pay attention to the Redis capacity and expand it before overload. |
Configure CPU, memory, and bandwidth alarms based on the alarm thresholds. |
Perform routine health checks. |
Perform routine checks on the memory usage of each node and whether the memory usage of the master nodes is balanced. |
If memory usage is unbalanced, big keys exist and need to be split and optimized. |
Perform routine analysis on hot keys and check whether there are frequently accessed keys. |
- |
|
Perform routine diagnosis on Redis commands and check whether O(N) commands have potential risks. |
Even if an O(N) command is not time-consuming, it is recommended that R&D engineers analyze whether the value of N will increase with service growth. |
|
Perform routine analysis on slow query logs. |
Detect potential risks based on slow query logs and rectify faults as soon as possible. |
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot