El contenido no se encuentra disponible en el idioma seleccionado. Estamos trabajando continuamente para agregar más idiomas. Gracias por su apoyo.
- What's New
- Function Overview
- Product Bulletin
- Service Overview
-
GeminiDB Redis API
- Service Overview
- Billing
- Getting Started with GeminiDB Redis API
-
Working with GeminiDB Redis API
- IAM Permissions Management
- Buying an Instance
-
Connecting to an Instance
- Connection Modes
- Connecting to GeminiDB Redis Instances Through DAS
- Connecting to GeminiDB Redis Instances over a Private Network
- Connecting to GeminiDB Redis Instances over a Public Network
- Configuring a Private Domain Name
- Configuring a Public Domain Name
- Configuring Security Group Rules for Nodes
- Binding and Unbinding an EIP
- Viewing the IP Address and Port Number
- Configuring an SSL Connection
- Connecting to an Instance over SSL
- Changing a Node Security Group
- Enabling or Disabling Private Network Access for a Load Balancer
- Instance Statuses
- Instance Lifecycle Management
-
Instance Changes
- Upgrading a Minor Version
- Modifying the Name of an Instance
- Changing the Administrator Password of a GeminiDB Redis Instance
- Storage Space
- Configuring Auto Scale
- Changing the CPU and Memory Specifications of an Instance
- Setting a Maintenance Window
- Adding Nodes
- Adding Shards
- Deleting Nodes
- Performing a Primary/Standby Switchover
- Managing Tags
- Renaming Commands
- Updating the OS of an Instance
- Audit
- Instance Sessions
- Account and security
- Diagnosis Analysis
- Monitoring and Alarm Configuration
- Data Backup
- Data Restoration
-
Parameter Management
- Modifying Parameters of GeminiDB Redis Instances
- Creating a Parameter Template
- Viewing Parameter Change History
- Exporting a Parameter Template
- Comparing Parameter Templates
- Replicating a Parameter Template
- Resetting a Parameter Template
- Applying a Parameter Template
- Viewing Application Records of a Parameter Template
- Modifying the Description of a Parameter Template
- Deleting a Parameter Template
- Log Management
- Memory Acceleration
- Quotas
-
Development Reference
- Development and O&M Rules
- Compatible Commands
-
Connecting to an Instance Through a Client Using Code
- Connecting to an Instance Using Java
- Connecting to an Instance Using Jedis
- Connecting to an Instance Using Redisson
- Connecting to an Instance Using Hiredis
- Connecting to an Instance Using Node.js
- Connecting to an Instance Using PHP
- Connecting to an Instance Using Python
- Connecting to an Instance Using Go
- Connecting to an Instance Using C#
- Connecting to an Instance Using Sentinel
- Lua Script Compilation Specifications
- Keyspace Notification
- EXHASH Commands
- Large Bitmap Initialization
- Configuring Parameters for a Client Connection Pool
- Using Parallel SCAN to Accelerate Full Database Scanning
- Accessing a GeminiDB Redis Instance Using a Pipeline
- Processing Transactions on a GeminiDB Redis Instance
- Retry Mechanism for GeminiDB Redis Clients
- GeminiDB Redis API Pub/Sub
- Best Practices
- Performance White Paper
-
Data Migration
- Overview of the Redis Data Migration Solution
- Verifying Redis Data Consistency After Migration
- Migrating the Alibaba Cloud Database Redis/Tair To GeminiDB Redis
- From On-Premises Redis to GeminiDB Redis API
- Migration from an RDB to a GeminiDB Redis Instance Using a Migration Tool
- Restoring RDB Files to GeminiDB Redis API (Recommended)
- From Kvrocks to GeminiDB Redis API
- From Pika to GeminiDB Redis API
- From SSDB to GeminiDB Redis API
- From LevelDB to GeminiDB Redis API
- From Kvrocks to GeminiDB Redis API
- Migrating AWS Elastic Cache for Redis Databases To GeminiDB Redis
- (Recommended) Using DRS to Migrate Data from a GeminiDB Redis Instance to an Open-Source Redis Instance
-
FAQs
-
About GeminiDB Redis API
- What Are the Differences Between GeminiDB Redis API, Open-Source Redis, and Other Open-Source Redis Cloud Services?
- How Is the Performance of GeminiDB Redis API Compared with Open-Source Redis?
- What Redis Versions and Commands Are Compatible with GeminiDB Redis API? Whether Applications Need to Be Changed for Client Connection?
- Can Data Be Migrated from a Self-Built Redis Instance to a GeminiDB Redis Instance? What Are the Precautions?
- What Is the Availability of a GeminiDB Redis Instance?
- Are Total Memory and Total Capacity of a GeminiDB Redis Instance the Same? What Is the Relationship Between Memory and Capacity?
- How Do I Select Proper Node Specifications and Node Quantity When Purchasing a GeminiDB Redis Instance?
- Is a Primary/Standby or Cluster Deployment Mode Preferred for GeminiDB Redis Instances with Several GB of Storage Space?
- How Does GeminiDB Redis API Persist Data? Will Data Be Lost?
- What Is the Memory Eviction Policy of GeminiDB Redis API?
- Does GeminiDB Redis API Support Modules Such as a Bloom Filter?
- Billing
-
Database Usage
- Why Is the Key Not Returned Using Scan Match?
- How Do I Process Existing Data Shards After Migrating Workloads to GeminiDB Redis API?
- Does GeminiDB Redis API Support Fuzzy Query Using the Keys Command?
- Does the GeminiDB Redis API Support Multiple Databases?
- Why the Values Returned by Scan Operations Are Different Between GeminiDB Redis API and Open-Source Redis 5.0?
- Why Are Error Messages Returned by Some Invalid Commands Different Between GeminiDB Redis API and Open-Source Redis 5.0?
- How Do I Resolve the Error "CROSSSLOT Keys in request don't hash to the same slot"?
- How Many Commands Can Be Contained in a GeminiDB Redis Transaction?
- Which Commands Require Hash Tags in GeminiDB Redis Cluster Instances?
- What Do I Do If the Error "ERR Unknown Command Sentinel" Is Displayed?
- Why Return Values of Blocking Commands Differ Between Primary/Standby GeminiDB Redis Instances and Open-Source Redis Instances?
- How Long Does It Take to Scale Up GeminiDB Redis Instance Storage? Will Services Be Affected?
- How Long Does It Take to Add GeminiDB Redis Nodes at the Same Time? What Are the Impacts on Services?
- What Are the Differences Between Online and Offline Specification Changes of GeminiDB Redis Nodes? How Long Will the Changes Take? What Are the Impacts on Services?
- What Are the Differences Between Online and Offline Patch Installation of GeminiDB Redis Nodes? How Long Will the Upgrades Take? What Are the Impacts on Services?
- Can I Download Backups of a GeminiDB Redis Instance to a Local PC and Restore Data Offline?
- What Is the Data Backup Mechanism of GeminiDB Redis API? What Are the Impacts on Services?
- Why Does the CPU Usage Remain High Despite Low Service Access Volume on a GeminiDB Redis Preferential Instance with 1 CPU and 2 Nodes?
- Why Does the Number of Keys Decrease and Then Become Normal on the Monitoring Panel on the GUI of GeminiDB Redis API?
- Why Is CPU Usage of GeminiDB Redis Nodes Occasionally High?
- How Do I Upgrade GeminiDB Redis API from 5.0 to 6.2?
- When Does a GeminiDB Redis Instance Become Read-Only?
-
Database Connection
- How Do I Connect to a GeminiDB Redis Instance?
- What Can I Do with IP Addresses of GeminiDB Redis Nodes?
- How Does Load Balancing Work in GeminiDB Redis API?
- How Can I Create and Connect to an ECS?
- Can I Change the VPC of a GeminiDB Redis Instance?
- Why Can't I Connect to the Instance After an EIP Is Bound to It?
- How Do I Access a GeminiDB Redis Instance from a Private Network?
- Do I Need to Enable Private Network Access Control for a Load Balancer After Setting a Security Group?
- What Should I Do If the Client Connection Pool Reports Error " Could not get a resource from the pool"?
- Common Client Errors and Troubleshooting Methods
- Backup and Restoration
- Regions and AZs
-
Data Migration
- What Do I Do if the GeminiDB Redis Link Cannot Be Found on DRS?
- What Do I Do if the Error "ERR the worker queue is full, and the request cannot be executed" Is Displayed?
- What Do I Do If the Error "ERR the request queue of io thread is full, and the request cannot be executed" Is Displayed?
- What Do I DO If the Error "read error, please check source redis log or network" Is Displayed?
- What Do I Do If the Error "slaveping_thread.cc-ThreadMain-90: error: Ping master error" Is Displayed?
- What Do I Do If the Forward Migration Speed of the Synchronization Status Is Too Slow?
- What Do i Do When the Forward Migration Speed of the Synchronization Status Is Too Fast, and the Error Message "ERR Server Reply Timeout, Some Responses May Lose, but Requests Have Been Executed" Is Displayed?
- Can Data Be Migrated from Self-Built Redis 4.0, 5.0, and 6.2 to GeminiDB Redis API?
- How Do I Migrate Data from Self-Built Primary/Standby and Cluster Redis Instances to GeminiDB Redis Instances?
- Why Cannot DRS Migrate Data from Third-Party Redis Such as ApsaraDB for Redis and TencentDB for Redis?
- Which of the Following Factors Need to Be Considered When Data Is Migrated from Self-Built Primary/Standby Redis Instances to a GeminiDB Redis cluster?
- Only 20% to 30% of 100 GB of Data Was Migrated to GeminiDB Redis. Is the Migration Incomplete?
-
Memory Acceleration
- Will All Data Be Cached to GeminiDB Redis Instances After Memory Acceleration Is Enabled and MySQL Database Data Is Updated?
- If Memory Acceleration Is Enabled, GeminiDB Redis Instance Data Increases Continuously. Do I Need to Scale Out the Capacity? How Do I Manage Cached Data?
- Is Memory Acceleration Recommended When Customers' Service Data Can Be Synchronized Between MySQL and Redis? In Which Scenarios Can Memory Acceleration Be enabled?
- How Long Is the Latency of Synchronization from RDS for MySQL to GeminiDB Redis API? What Factors Affect the Latency?
- Will the Source MySQL Database Be Affected After Memory Acceleration Is Enabled?
- GeminiDB Redis Instances with Memory Acceleration Enabled Needs to Process a Large Number of Binlogs in a Short Period of Time. Will a Large Number of Resources Be Occupied and Online Services Be Affected?
- Instance Freezing, Release, Deletion, and Unsubscription
-
About GeminiDB Redis API
-
GeminiDB Influx API
- Service Overview
- Billing
- Getting Started with GeminiDB Influx API
-
Working with GeminiDB Influx API
- Permissions Management
- Buying an Instance
- Connecting to an Instance
- Instance Lifecycle
- Instance Modifications
- Connection Management
- Migrating Data
- Database Commands
- Cold and Hot Data Separation
- Certificate Management
- Data Backup
- Data Restoration
- Exporting Data
-
Parameter Template Management
- Creating a Parameter Template
- Modifying Parameters of GeminiDB Influx Instances
- Viewing Parameter Change History
- Exporting a Parameter Template
- Comparing Parameter Templates
- Replicating a Parameter Template
- Resetting a Parameter Template
- Applying a Parameter Template
- Viewing Application Records of a Parameter Template
- Modifying a Parameter Template Description
- Deleting a Parameter Template
- Monitoring and Alarm Reporting
- Audit
- Quotas
- Best Practices
- Performance White Paper
-
FAQs
-
Product Consulting
- What Do I Need to Note When Using GeminiDB Influx API?
- What Does the Availability of GeminiDB Influx Instances Mean?
- Can GeminiDB Influx API Convert Multiple Columns to Multiple Rows?
- How Much Data Can a GeminiDB Influx Instance Hold?
- Can I Access GeminiDB Influx Instances Using Grafana?
- How Do I Use GeminiDB Influx Hints?
- What Do I Do If Error "select *" query without time range is not allowed Is Reported?
- What Do I Do If the Error Message "ERR: Max-select-series Limit Exceeded" Is Displayed?
- What Do I Do If "delete is forbidden" Is Reported?
- Billing
- Database Connection
- Backup and Restoration
- Regions and AZs
- Instance Freezing, Release, Deletion, and Unsubscription
-
Product Consulting
-
GeminiDB Cassandra API
- Service Overview
- Billing
- Getting Started with GeminiDB Cassandra API
-
Working with GeminiDB Cassandra API
- Permissions Management
- Buying an Instance
- Instance Connections
- Instance Lifecycle
- Instance Modifications
- Connection Management
- Data Management
- Intra-region DR
- Cross-region Dual-active DR
- Data Backup
- Data Restoration
-
Parameter Template Management
- Creating a Parameter Template
- Modifying Parameters of GeminiDB Cassandra Instances
- Viewing Parameter Change History
- Exporting a Parameter Template
- Comparing Parameter Templates
- Replicating a Parameter Template
- Resetting a Parameter Template
- Applying a Parameter Template
- Viewing Application Records of a Parameter Template
- Modifying a Parameter Template Description
- Deleting a Parameter Template
- Audit
- Monitoring and Alarm Configuration
- Log Management
- Enterprise Project
- Quotas
- Best Practices
- Performance White Paper
-
FAQs
- Product Consulting
- Billing
-
Database Usage
- Why Does the Overall Instance Performance Deteriorate When QPS Increases After the Batch Size Is Decreased?
- What Can I Do if Error "field larger than field limit (131072)" Is Reported During Data Import?
- What Should I Pay Attention to When Creating a GeminiDB Cassandra Table?
- How Do I Detect and Resolve BigKey and HotKey Issues?
- How Do I Set Up a Materialized View?
- How Do I Use a Secondary Index?
- How Can I Use the Search Index of Lucene?
- How Do I Set Paging Query with Java?
- How Do I Set Paging Query with Python?
- Database Connection
- Backup and Restoration
- Regions and AZs
- Instance Freezing, Release, Deletion, and Unsubscription
- GeminiDB DynamoDB Instances
- HBase-Compatible Instance
-
GeminiDB Mongo API
- Service Overview
- Billing
- Getting Started with GeminiDB Mongo API
-
Working with GeminiDB Mongo API
- Permissions Management
- Migrating Data
- Instance Lifecycle
- Instance Modifications
- Connections
- Database Commands
- Data Backup
- Data Restoration
-
Parameter Template Management
- Creating a Parameter Template
- Modifying Parameters of GeminiDB Mongo Instances
- Viewing Parameter Change History
- Exporting a Parameter Template
- Comparing Parameter Templates
- Replicating a Parameter Template
- Resetting a Parameter Template
- Applying a Parameter Template
- Viewing Application Records of a Parameter Template
- Modifying a Parameter Template Description
- Deleting a Parameter Template
- Monitoring and Alarm Configuration
- Audit
- Log Management
- Billing Management
- Quotas
- Best Practices
- Performance White Paper
- FAQs
- Change History
- Technical White Paper
-
API Reference
- Before You Start
- API Overview
- Calling APIs
- Quick Start
-
APIs v3 (Recommended)
- API Versions
- Versions and Specifications
-
Instances
- Creating an Instance
- Deleting an Instance
- Querying Instances and Details
- Scaling Up Storage Space of an Instance
- Adding Nodes for an Instance
- Deleting Nodes from a Specified Instance
- Obtaining Sessions of a Node
- Querying Session Statistics of an Instance Node
- Closing Sessions of an Instance Node
- Querying Specifications That You Can Change Those of an Instance To
- Changing Specifications of an Instance
- Resetting the Administrator Password of an Instance
- Editing the Name of an Instance
- Changing the Security Group of an Instance
- Upgrading Minor Version
- Patching Databases in Batches
- Creating Cold Storage
- Scaling Up Cold Storage
- Binding/Unbinding an EIP
- Enabling or Disabling SSL
- Restarting an Instance
- Configuring an Autoscaling Policy for Storage Space
- Changing a Database Port
- Checking Password Strength
- Configuring Access to a Replica Set Across CIDR Blocks
- Deleting the Node that Fails to Be Added
- Querying IP Addresses Required for Creating an Instance or Adding Nodes
- Querying the Autoscaling Policy of Storage Space
- Scaling Storage Space of an Instance
- Querying High-Risk Commands
- Modifying High-Risk Commands
- Querying Hot Keys of a Redis Instance
- Disabling Commands for a Redis Instance
- Querying Disabled Commands for a Redis Instance
- Deleting Disabled Commands for a Redis Instance
- Setting the Maintenance Period of an Instance
- Performing a Primary/Standby Switchover
- Starting or Stopping a Node
- Querying Big Keys of a GeminiDB Redis Instance
- Querying the Password-Free Configuration of a GeminiDB Redis Instance
- Modifying the Password-Free Configuration of a GeminiDB Redis Instance
- Querying the Memory Mapping List and Details
- Creating a Memory Acceleration Rule
- Deleting a Memory Mapping
- Creating a Memory Mapping
- Modifying a Memory Acceleration Rule
- Querying Memory Mapping Rules and Details
- Deleting a Memory Acceleration Rule
- Enabling or Disabling Instance Data Export
- Enabling or Disabling Second-Level Monitoring
- Querying Configurations of Second-Level Monitoring
- Connection Management
-
Backups and Restorations
- Querying Backups
- Querying Backups (Recommended)
- Querying an Automated Backup Policy
- Configuring an Automated Backup Policy
- Querying Instances that Can Be Restored
- Querying the Time Window When a Backup Can Be Restored
- Creating a Manual Backup
- Deleting a Manual Backup
- Restoring Data to an Existing Instance
- Querying the Recycling Policy
- Modifying the Recycling Policy
- Querying Instances in the Recycle Bin
- Obtaining GeminiDB Cassandra Instance Database Information That Is Restored Using Tables
- Obtaining GeminiDB Cassandra Instance Table Information That Is Restored Using Tables
- Restoring the Current Redis Instance to a Point in Time
- Setting the Policy for Restoring Redis Data to a Specified Time Point
- Querying the Policy for Restoring Redis Data to a Specified Time Point
- Querying the Restoration Time Range of a Redis Instance
- Querying the Storage Space Used for Restoring a Redis Instance to a Specified Time Point
- Stopping a Backup
- Deleting Manual Backups in Batches
-
Parameter Templates
- Obtaining Parameter Templates
- Creating a Parameter Template
- Modifying Parameters in a Parameter Template
- Applying a Parameter Template
- Resetting a Custom Parameter Template
- Modifying Parameters of a Specified Instance
- Querying Instance Parameter Settings
- Obtaining Parameters of a Specified Parameter Template
- Deleting a Parameter Template
- Querying Instances that a Parameter Template Can Be Applied To
- Viewing Parameter Change History of an Instance
- Viewing Application Records of a Parameter Template
- Comparing Parameter Templates
- Replicating a Parameter Template
- Querying API that Support Parameter Templates
- Managing Databases and Accounts
- Tags
-
Logs
- Querying Database Slow Logs
- Querying Slow Query Logs of a GeminiDB Redis Instance
- Querying Slow Query Logs of a GeminiDB Influx Instance
- Querying Slow Query Logs of a GeminiDB Cassandra Instance
- Querying Slow Query Logs of a GeminiDB Mongo Instance
- Querying Database Error Logs
- Querying Error Logs of a GeminiDB Mongo Instance
- Setting the Desensitization Status of Slow Query Logs
- Querying the Desensitization Status of Slow Query Logs
- Associating Instances with an LTS Log Stream
- Disassociating Instances from an LTS Log Stream
- Querying LTS Log Configurations
- Quotas
- Disaster Recovery
- Task Management
- Enterprise Projects
- Instance Load Balancing Management
- API v3 (Unavailable Soon)
- Permission Policies and Supported Actions
- Appendixes
- SDK Reference
- Videos
- General Reference
Copied.
Modeling Data of GeminiDB Cassandra Instances
This section describes concepts and suggestion of modeling data on GeminiDB Cassandra instances.
GeminiDB Cassandra API is a distributed, decentralized, and highly available wide-column store, a special type of NoSQL databases.
Data is evenly distributed to nodes in a GeminiDB Cassandra cluster using the consistent hashing algorithm. Each node functions as a proxy to receive requests from clients. Based on the cluster keyspace replica and snitch policies, GeminiDB Cassandra API replicates data within the specified primary key range of each node to other nodes in the cluster to improve data reliability and service availability in the distributed system.
An adjustable consistency level (such as ONE and QUORUM) is defined for each read and write, so GeminiDB Cassandra API ensures service availability and data consistency of a single request.
Concepts
Key
There are multiple keys, for example:
CREATE TABLE mytable1 ( name text PRIMARY KEY , age int , address text , person_id text ); CREATE TABLE mytable2 ( name text , age int , address text , person_id text, PRIMARY KEY (name, age) ); CREATE TABLE mytable3 ( name text , age int , address text , person_id text, PRIMARY KEY ((name, age), person_id) ) WITH CLUSTERING ORDER BY (person_id DESC );
- PRIMARY KEY: A primary key is a unique identifier for each record in a table and consists of multiple data types. In the preceding example, name, (name, age), and ((name, age), person_id) indicate primary keys of mytable1, mytable2, and mytable3.
- PARTITION KEY: A partition key is the first column of a primary key and determines which node will store hashed data of GeminiDB Cassandra instances. In the preceding example, name, name, and (name, age) indicate partition keys of mytable1, mytable2, and mytable3, respectively. Data that shares partition keys is distributed to the same partition.
- CLUSTERING KEY: Each primary key column after a partition key is considered a clustering key, which is used to sort data within a partition. In the preceding example, mytable1 does not have a clustering key. age and person_id indicate clustering keys of mytable2 and mytable3, respectively.
To improve performance of a GeminiDB Cassandra cluster, ensure data is evenly distributed on each node in the cluster. Factors affecting the performance include the partition size, data redundancy, and disk space usage. No more than 100,000 records and no more than 100 MB of data are recommended in each partition.
Secondary index
Example:
CREATE INDEX mytable_idx_age ON mytable2 (age);
Create a native secondary index in the age column of mytable2. The native secondary index stores index data in a new table on a GeminiDB Cassandra instance. Values in the index column are used as keys while the original index keys are used as values. The final structure of the index table may be:
CREATE TABLE mytable_index_age (age int, name text , address text , person_id text, PRIMARY KEY(age, name));
PARTITION KEY cannot be used to find the node storing the index table based on age, because index and native data in the index table are stored on the same node and the local data placement policy is used.
You are advised to add a partition constraint of the original table when using the native secondary index. If the partition key is not specified, full table scan will be performed for a query. The following modes are recommended:
SELECT * FROM mytable2 WHERE age = 11 AND name = 'name'; SELECT * FROM mytable2 WHERE age >= 11 AND name IN ('name1', 'name2') ; SELECT * FROM mytable2 WHERE age = 11 AND TOKEN (name)> xxxxx AND TOKEN(name) < yyyyy;
Suggestions and Principles for Modeling Data
Before performing operations on GeminiDB Cassandra instances, you need to create a service model, organize data (design primary keys), read and write data based on application features.
- No JOIN: GeminiDB Cassandra API does not support a JOIN query, so you need to execute it on a client or create a table if necessary.
- No referential integrity: Cross-table referential integrity is not supported. Data in a table cannot be referenced from another table using foreign keys.
- Denormalization: Redundant data is added to an otherwise normalized relational database to improve read performance.
- Query-first: Different from a relational database management system (RDBMS), the query-first approach focuses on how to search for information first and then set up a database based on those searches or queries.
- Designing for optimal storage: How to store relational database tables is transparent to users. To model data of GeminiDB Cassandra instances, you need to consider data storage rules on disks and minimize data partitions.
- Sorting is a design decision: The sort order available on queries is fixed during table creation.
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