Tair Serverless KV charges based on compute resource fees and storage space fees. Compute fees use a capacity-unit model — Read Capacity Units (RCUs) and Write Capacity Units (WCUs) normalize variable CPU, I/O, and memory costs into two predictable per-request metrics. Storage is billed by actual hourly usage, with a 20 GB minimum.
Billable items
Compute resource consumption (pay-per-operation)
Read Capacity Unit (RCU): 1 RCU covers up to 4 KB of data read in a single request. Reads smaller than 4 KB are rounded up to 4 KB.
| Data read | RCUs consumed |
|---|---|
| 1 KB | 1 RCU |
| 4 KB | 1 RCU |
| 7 KB (4 KB + 3 KB) | 2 RCUs |
Write Capacity Unit (WCU): 1 WCU covers up to 512 B of data written in a single request. Writes smaller than 512 B are rounded up to 512 B.
| Data written | WCUs consumed |
|---|---|
| 200 B | 1 WCU |
| 1 KB (512 B × 2) | 2 WCUs |
| 1.2 KB (≈ 512 B × 2.4) | 3 WCUs |
Storage space usage
Storage is billed based on the actual GB the instance uses, measured hourly. Usage below 20 GB is billed as 20 GB. Usage above 20 GB is rounded up to the nearest integer GB.
| Storage used | Billed as |
|---|---|
| 15 GB | 20 GB |
| 50.2 GB | 51 GB |
CU calculation by command
The tables below show how RCUs and WCUs are calculated for each command type. Use these to estimate cost for the specific commands your application runs.
Primary-key scan commands (SCAN, KEYS)
| Command | Calculation |
|---|---|
| SCAN, KEYS | 1 base RCU + RCUs based on the actual scanned key size |
General commands (DEL, EXISTS)
| Command | Calculation |
|---|---|
| DEL, EXISTS | n WCUs based on the number of keys (n) |
KV structure (String)
| Command | Condition | Calculation |
|---|---|---|
| SET (write) | Key does not exist | WCUs based on key size + value size |
| SET (write) | Key exists | Query phase: RCUs based on key size. Write phase: WCUs based on key size + value size. |
| GET (read) | Key does not exist | 1 RCU |
| GET (read) | Key exists | RCUs based on key size + value size |
KKV structure (Hash, Set, sorted set, List, Geo)
| Command | Condition | Calculation |
|---|---|---|
| HSET (write) | Key does not exist | WCUs based on key size + field size + value size |
| HSET (write) | Key exists, field does not exist | RCUs (key size) + WCUs (key size + field size + value size) |
| HSET (write) | Key and field exist | RCUs (key size) + RCUs (key size + field size + old value size) + WCUs (key size + field size + value size) |
| HGET (read) | Key does not exist | 1 RCU |
| HGET (read) | Key exists, field does not exist | RCUs based on key size |
| HGET (read) | Key and field exist | RCUs (key size) + RCUs (key size + field size + value size) |
| HSCAN | Key does not exist | 1 RCU |
| HSCAN | Key exists | 2 base RCUs + RCUs based on scanned field size + value size (when values are returned) |
Pricing
| Region | RCU | WCU | Storage |
|---|---|---|---|
|
China (Beijing), China (Shanghai), China (Hangzhou), China (Shenzhen) |
USD 0.026 per million |
USD 0.052 per million |
USD 0.00029 per GB-hour |
|
Indonesia (Jakarta), Singapore |
USD 0.03 per million |
USD 0.063 per million |
USD 0.00035 per GB-hour |
| China North 2 (Beijing), China East 2 (Shanghai), China East 1 (Hangzhou), China South 1 (Shenzhen) | USD 0.086 per million requests | USD 0.13 per million requests | USD 0.00029 per GB-hour |
| Indonesia (Jakarta), Singapore | USD 0.1 per million requests | USD 0.15 per million requests | USD 0.00035 per GB-hour |
Billing method
|
Billable item |
RCU |
WCU |
Storage |
|
Usage statistics |
|
|
|
|
Daily fee calculation formula |
Fee = CEILING(Total daily usage / 1,000,000) × Unit price |
Fee = Sum of hourly storage usage for the day (GB-hours) × Unit price |
|
|
Billing cycle |
Daily |
Daily |
|
Billing examples
-
Example 1: Low-usage scenario
Assume an instance in the China (Beijing) region has the following usage on a given day:
-
Total RCUs consumed: 1.1 million
-
Total WCUs consumed: 0.2 million
-
Storage usage: 30 GB for 18 hours and 50 GB for 6 hours
Daily fee calculation:
-
RCU fee:
Billable consumption: 1.1 million RCUs, rounded up to 2 million
Fee: 2 × USD 0.026/million = USD 0.052 -
WCU fee:
Billable consumption: 0.2 million WCUs, rounded up to 1 million
Fee: 1 × USD 0.052/million = USD 0.052 -
Storage space fee:
Billable usage: (18 hours × 30 GB) + (6 hours × 50 GB) = 840 GB-hours
Fee: 840 GB-hours × USD 0.00029/GB-hour = USD 0.2436
Total daily fee = RCU fee + WCU fee + storage space fee = USD 0.052 + USD 0.052 + USD 0.2436 = USD 0.3476.
-
-
Example 2: High-usage scenario
Assume an instance in the China (Shanghai) region has the following usage on a given day:
-
Total RCUs consumed: 11.8 million
-
Total WCUs consumed: 5.3 million
-
Storage usage: 500 GB for 6 hours, 450 GB for 13 hours, and 600 GB for 5 hours
Daily fee calculation:
-
RCU fee:
Billable consumption: 11.8 million RCUs, rounded up to 12 million
Fee: 12 × USD 0.026/million = USD 0.312 -
WCU fee:
Billable consumption: 5.3 million WCUs, rounded up to 6 million
Fee: 6 × USD 0.052/million = USD 0.312 -
Storage space fee:
Billable usage: (6 hours × 500 GB) + (13 hours × 450 GB) + (5 hours × 600 GB) = 11,850 GB-hours
Fee: 11,850 GB-hours × USD 0.00029/GB-hour = USD 3.4365
Total daily fee = RCU fee + WCU fee + storage space fee = USD 0.312 + USD 0.312 + USD 3.4365 = USD 4.0605.
-
Billing methods
All three billing items use a daily billing cycle.
| Billing item | How usage is measured | Daily fee formula |
|---|---|---|
| RCU | RCUs consumed are totaled each second and aggregated daily. Billed in units of 1 million requests, rounded up. | Fee = ROUNDUP(total daily RCUs / 1,000,000) × unit price |
| WCU | WCUs consumed are totaled each second and aggregated daily. Billed in units of 1 million requests, rounded up. | Fee = ROUNDUP(total daily WCUs / 1,000,000) × unit price |
| Storage | Average hourly storage usage in GB is aggregated daily. Billed per GB, rounded up to the nearest integer. Minimum 20 GB. | Fee = (sum of hourly storage usage in GB for the day) × unit price |
Billing examples
Example 1: An instance in China North 2 (Beijing) consumes 1.1 million RCUs and 0.2 million WCUs in a day. Storage usage is 30 GB for 18 hours and 50 GB for 6 hours.
-
RCU fee: 1.1 million rounded up to 2 million. 2 million × USD 0.086/million = USD 0.172
-
WCU fee: 0.2 million rounded up to 1 million. 1 million × USD 0.13/million = USD 0.13
-
Storage fee: (30 GB × 18 h) + (50 GB × 6 h) = 840 GB-hours × USD 0.00029/GB-hour = USD 0.2436
-
Total daily fee: USD 0.5456
Example 2: An instance in China East 2 (Shanghai) consumes 11.8 million RCUs and 5.3 million WCUs in a day. Storage usage is 500 GB for 6 hours, 450 GB for 13 hours, and 600 GB for 5 hours.
-
RCU fee: 11.8 million rounded up to 12 million. 12 million × USD 0.086/million = USD 1.032
-
WCU fee: 5.3 million rounded up to 6 million. 6 million × USD 0.13/million = USD 0.78
-
Storage fee: (500 GB × 6 h) + (450 GB × 13 h) + (600 GB × 5 h) = 11,850 GB-hours × USD 0.00029/GB-hour = USD 3.4365
-
Total daily fee: USD 5.2485
FAQ
Does reading a non-existent key cost anything?
Yes. A GET or HGET on a non-existent key always consumes 1 RCU.
What is the minimum daily storage charge?
Storage is billed at a minimum of 20 GB per hour, even if actual usage is lower.
Are scan commands more expensive than point reads?
Yes. SCAN and KEYS each consume 1 base RCU plus additional RCUs based on the size of each scanned key. HSCAN on an existing key consumes 2 base RCUs plus more for each field-value pair returned.
Why does overwriting an existing key cost both RCUs and WCUs?
When overwriting an existing KV key (SET) or KKV field (HSET), the system first reads the current entry to locate it before writing. This lookup phase consumes RCUs, and the write phase consumes WCUs. If the key or field does not exist, only WCUs apply.
How are RCU and WCU consumption measured — per second or per day?
Both are measured per second and aggregated to a daily total. Billing is applied once per day, in units of 1 million requests rounded up.