缓存节点价格

地域按量计费价格包年包月价格
第一阶梯(元/GB/小时)第二阶梯(元/GB/小时)第三阶梯(元/GB/小时)(元/GB/月)
广州、上海、南京、北京、成都、重庆0.23330.17500.116784
中国香港、中国台北、曼谷、新加坡、孟买、东京、首尔、硅谷、弗吉尼亚、多伦多、法兰克福、莫斯科0.31670.23750.1583114

存储节点价格

地域按量计费价格包年包月价格
第一阶梯(元/GB/小时)第二阶梯(元/GB/小时)第三阶梯(元/GB/小时)(元/月)
广州、上海、南京、北京、成都、重庆4.53333.40002.26671632
中国香港、中国台北、曼谷、新加坡、孟买、东京、首尔、硅谷、弗吉尼亚、多伦多、法兰克福、莫斯科6.66675.00003.33332400

磁盘价格


地域按量计费价格包年包月价格
第一阶梯(元/GB/小时)第二阶梯(元/GB/小时)第三阶梯(元/GB/小时)(元/GB/月)
广州、上海、南京、北京、成都、重庆0.00610.00460.00312.2
中国香港、中国台北、曼谷、新加坡、孟买、东京、首尔、硅谷、弗吉尼亚、多伦多、法兰克福、莫斯科0.00730.00550.00372.64

云数据库-TencentDB-for-Tendis-1440_01.jpg云数据库-TencentDB-for-Tendis-1440_02.jpg云数据库-TencentDB-for-Tendis-1440_03.jpg云数据库-TencentDB-for-Tendis-1440_04.jpg云数据库-TencentDB-for-Tendis-1440_05.jpg


开源 Redis 使用内存存储介质,能够在计算和缓存场景提供超高并发和超低延迟,但是将 Redis 作为存储数据库面临着高成本和低可靠性的缺点,为弥补 Redis 在存储场景的空缺,腾讯云研发了兼容 Redis 协议,且使用磁盘作为存储介质的 KV(key-value)数据库 Tendis。

云数据库 Tendis(TencentDB for Tendis,Tendis)是兼容 Redis 协议的 KV 存储数据库,Tendis 兼容 Redis 4.0 版本协议,并提供存储版和混合存储版两个产品系列,支持千万级的并发请求,可满足业务在 KV 存储场景中的多种需求。

存储版:全量数据存储在磁盘,兼容 Redis 4.0 所有数据结构和大部分命令,提供标准架构(主备架构)、低成本、大容量的 KV 存储解决方案。

混合存储版:系统由分布式缓存(Redis)和分布式存储(RocksDB)构成,全量数据存储在磁盘引擎 Tendis,热数据缓存在 Redis,100%兼容 Redis 4.0 协议,提供数据自动缓存、自动降冷能力。

产品功能

混合存储:混合存储版提供数据自动缓存、自动降冷能力,兼顾成本与性能。

主从热备:提供主从热备,宕机自动监测,自动容灾,数据落地6副本。

弹性扩容:提供水平分片扩展和垂直容量扩展功能,提供业务全生命周期弹性扩展。

分布式存储:用户的存储分布在多台物理机上,彻底摆脱单机容量和资源限制。

便宜易用

提供灵活的计费方式

提供包年包月的计费模式,避免一次性投入大量资金建设基础设备。

弹性扩容

控制台一键式扩容,扩容过程中无需停止服务,用户无需做任何处理。

超高性能

标准版性能高达10万+ QPS,集群版支持千万级 QPS,超高的性能可以满足用户大部分场景需求,适用于游戏、移动、广告、电商等开发场景。

高可用性

云数据库 Tendis 采用双机热备架构,主机故障后,访问秒级切换到备机,整个过程用户无需做任何处理。节省了开发主从系统带来的人力和时间成本。

高可靠性

提供在线的主从两份数据存储,确保线上数据安全,同时通过备份机制保存多天的备份数据,以便于在发生数据库灾难时进行数据恢复。

低成本

相对 Redis 使用内存作为存储介质,Tendis 将数据保持在磁盘中,因此成本大幅度的降低,同时 Tendis 还提供混合存储版本,数据自动降冷、自动缓存,提供成本与性能平衡的解决方案。

大容量

Tendis 将数据存储在云硬盘,标准架构提供最大32TB的容量,集群架构容量可以水平扩展,理论上无容量限制。

丰富的监控能力

Tendis 提供多达三十余项的专业数据指标的监控,指标丰富、告警灵活,如,出入网流量监控。帮助用户提前预警风险,快速定位和解决问题。

电商场景

电商类应用通常拥有海量的商品数据,使用 Tendis 混合存储版,可以轻松突破内存容量限制,并且大幅降低业务成本。在正常业务请求中,活跃的商品数据会从内存中读取,而不活跃的商品数据将从磁盘读取,可以免受内存不够的困扰。

直播场景

视频直播类业务数据通常存在非常明显的冷热分布,热门直播间的访问比例占到了绝大多数。使用 Tendis 混合存储版,可在内存中保留热门直播间的数据,不活跃的直播间数据将自动存储到磁盘上,可以达到用户体验与业务成本兼顾的目的。

游戏场景

游戏类业务的数据通常存储了大量的玩家数据,使用 Tendis 混合存储版,可将在线活跃的玩家数据持续缓存到内存,一段时间未登录的玩家数据将被从内存驱逐,玩家上线后数据自动缓存,大幅降低成本,同时业务仅需要访问 Tendis,无需在业务中处理缓存和存储交换的逻辑,可大幅提升版本迭代效率。

云数据库 Tendis 存储版(标准架构)基于腾讯 KV 存储引擎 Tendis,将数据直接存储到磁盘,通过多副本保障服务的可用性和数据的可靠性,适用于大容量 KV 存储场景。

存储版特点

低成本

数据存储在磁盘,相对 Redis 的全内存方案,成本降低80%以上,同时提供存储级别的数据可靠性。

数据落盘自动压缩,采用 LZ4 压缩算法在性能和容量中寻找平衡,通常数据压缩率能到30%左右。

高效率

兼容大部分 Redis 命令和数据结构,业务可以完整地体验 Redis 高效的数据组织结构和操作接口。

大容量

依托于云硬盘提供的大容量存储空间,存储版提供50GB - 1.6TB的超大存储容量规格。

使用限制

Tendis 存储版兼容大部分 Redis 4.0 命令,详情可参考 命令兼容性,部分不支持的数据相关命令如下:

说明:

如果下述命令影响到了业务使用,您可以通过 提交工单 提出需求,我们将优先评估支持。

不支持的命令

命令族命令兼容性
connection 族swapdbx
keys 族randomkeyx
keys 族touchx
keys 族objectx
keys 族waitx
keys 族migratex
list 族blpopx
list 族brpopx
list 族brpoplpushx
sorted sets 族zpopmaxx
sorted sets 族zpopminx
sorted sets 族bzpopmaxx
sorted sets 族bzpopminx
scripting 族evalx
scripting 族evalshax
scripting 族script debugx
scripting 族script existsx
scripting 族script flushx
scripting 族script loadx
scripting 族script killx
geo 族geoaddx
geo 族geohashx
geo 族geoposx
geo 族geodistx
geo 族georadiusx
geo 族georadiusbymemberx

多数据库(DB)支持说明
Tendis 存储版不支持多 DB,但是支持 select 0 命令。

低性能命令

linsert、lrem:List 命令族中的 linsert、lrem 命令不建议使用,这两个命令会在磁盘中遍历 list 节点,命令的执行时间复杂度为 O(n),性能较差,list 节点数较大时,命令会执行超时。

append:append 命令在字符长度超过1MB后性能较差。

云数据库 Tendis 混合存储版(集群架构)基于腾讯内部广泛使用的 KV(key-value)存储引擎 Tendis ,Tendis 是腾讯自研兼容 Redis 协议的 Rocksdb 存储引擎,拥有高性能、高压缩比、高稳定性特性,在腾讯内部有着丰富的运营经验。

混合存储版(集群架构)由缓存 Redis 和引擎 Tendis 两大组件构成,适用于 KV 存储场景,平衡了存储场景中性能和成本之间难题,在冷数据占比较大的场景中可帮业务降低多达80%的运营成本。

混合存储版(集群架构)完全兼容 Redis 4.0 集群版的版本命令,使用门槛低,可以充分利用 Redis 丰富的数据结构和操作命令带来的高效率。

混合存储版(集群架构)的全量数据存储于磁盘,全量 Key 和热 Key 的 Value 缓存于内存。

混合存储版特点

低成本

数据自动降冷自动缓存,全量数据存储于磁盘,热数据缓存于内存,和内存版相比运营成本可降低40% - 80%。

数据落盘自动压缩,采用 LZ4 压缩算法在性能和容量中寻找平衡,最大可降低 90% 的磁盘空间。

高效率

100%兼容 Redis 协议,业务可以完整地体验 Redis 高效的数据组织结构和操作接口。

使用 Tendis 混合存储版,业务无需再处理数据的冷热交换,以及传统缓存方案中数据一致性、缓存击穿、缓存雪崩等问题,降低了业务的复杂性,提升开发效率,降低运维成本。

高性能

提供与 Redis 一致的热数据访问性能,最大提供300万+ QPS

支持高达100万 QPS 的并发写入。

大容量

提供240GB - 32TB的超大存储容量规格。

磁盘数据支持6副本,充分保障数据的可靠性。

混合存储版架构

云数据库 Tendis 混合存储版(集群架构)核心组件由 Proxy、缓存 Redis、引擎 Tendis 组成,每个组件功能介绍如下:

Proxy:负责对客户端请求进行路由分发,将不同的 Key 命令分发到正确的分片,同时 Proxy 还负责部分监控数据的采集,以及高危命令在线禁用等功能。

缓存 Redis:缓存 Redis 组件源于 Redis 4.0 Cluster,为了支持冷数据自动降冷,我们对 Redis 进行了 Value 淘汰、写入数据同步 Tendis、冷数据访问、主备热数据同步、按时间淘汰 Value 等核心功能的改造,改造后的混合存储版100%兼容 Redis Cluster 命令。

引擎 Tendis:腾讯自研的 KV 存储引擎,兼容 Redis 协议,该引擎已经在腾讯内部运营多年,性能和稳定性得到了充分的验证,在混合存储系统中主要负责全量数据的存储和读取,以及数据备份,增量日志备份等功能。

混合存储版规格

说明:


磁盘最小容量必须大于内存容量,否则可能存在数据无法写入的情况。

磁盘配置过小,可能存在内存无法存储足够的 Key(所有 Key 都会缓存至内存,淘汰的只是 Value),请评估好磁盘空间。

最大写入性能是在 Set 命令128字节 value 情况下的测试结果,测试命令如下:

redis-benchmark-h10.0.0.5-p6379-c100-n60000000-r1000000000-d128-tset-apasswd
分片数量总缓存容量(GB)总磁盘容量范围(GB)最大写入性能(QPS)
464240 - 52060,000
4128480 - 96060,000
42561000 - 200060,000
8128480 - 960120,000
8256960 - 1920120,000
85122000 - 4000120,000
16256960 - 1920240,000
165121920 - 3840240,000
1610244000 - 8000240,000
325123840 - 7680480,000
3210247680 - 15360480,000
32204816000 - 32000480,000

数据降冷说明

Value 驱逐策略

value-eviction-policy

通过 value-eviction-policy 用户可以指定 N 天未访问的 Key 自动被驱逐出内存。

该参数默认指定时间为7天,可在控制台自助调整该参数。


maxmemory-policy

混合存储版仅支持 allkeys-lru、allkeys-random,默认为 allkeys-lru。

当内存使用到达 maxmemory,系统将按照 maxmemory-policy 从内存策略驱逐 Value。


Value 缓存策略

value-cache-policy
通过该参数,用户可以配置磁盘数据何时缓存至 Tendis 内存,在5分钟内访问次数 ≥ value-cache-policy,Tendis 会将 Value 缓存至内存,通过该参数可以避免遍历数据等情况造成缓存失效的问题,如果将该参数配置为1,冷数据将立即缓存。

Expire 语义说明
对于设置了 Expire Time 的 Key,混合存储版将保持原有的语义,将到期的 Key 和 Value 从内存和磁盘中删除。EXPIRE、EXPIREAT、PEXPIRE、PEXPIREAT 命令对 Key 进行设置过期时间也是相同原理,到期后 Key 和 Value 都会删除。

大 Key 驱逐说明
为保障读性能,混合存储当前版本对于超过8MB或者 filed 超过1000个的复杂结构 Value(非 string),将不从内存中驱逐,因此如果存在大 Hash 等复杂数据结构情况下,降冷效果不明显,后续我们将持续优化。

命令兼容性说明

混合存储版(集群架构)数据是分布式存储的,集群架构命令支持情况分为支持、自定义命令、不支持,详细命令兼容性列表请参见 命令兼容性

不支持的命令
系统将返回如下错误:

keys *(error) ERR unknown command 'keys'


有限支持的命令
混合存储版(集群架构)兼容 Jediscluster 等智能客户端,为兼容 Jedis cluster 的使用场景,云数据库 Tendis 对 Cluster 支持命令返回对 IP 列表进行了修改,返回信息中每个节点的 IP 地址为实例的 VIP。

CLUSTER NODES

CLUSTER SLOTS

CONFIG GET

跨 Slot 命令支持
混合存储版(集群架构)目前支持跨 Slot 访问的命令,包括 MGET、MSET、DEL,其他多 Key 命令的跨 Slot 访问暂不支持。

自定义命令
混合存储版(集群架构)通过 VIP 封装,在集群模式下提供了单机版的使用体验,对业务的使用带来的极大的便利,但是对运维不够透明,因此通过自定义命令来弥补这块空缺,支持集群中每个节点的访问,支持方式为在原有命令的参数列表最右边新增一个参数【节点ID】,COMMAND arg1 arg2 ... [节点ID],节点 ID 可通过 cluster nodes 命令,或者在 控制台 中获取:

10.1.1.1:2000>clusternodes25b21f1836026bd49c52b2d10e09fbf8c6aa1fdc10.0.0.15:6379@11896slave36034e645951464098f40d339386e9d51a9d7e77015314719182051connectedda6041781b5d7fe21404811d430cdffea2bf84de10.0.0.15:6379@11170master-015314719160002connected10923-1638336034e645951464098f40d339386e9d51a9d7e7710.0.0.15:6379@11541myself,master-015314719150001connected0-546053f552fd8e43112ae68b10dada69d3af77c3364910.0.0.15:6379@11681slaveda6041781b5d7fe21404811d430cdffea2bf84de015314719172043connected18090a0e57cf359f9f8c8c516aa62a811c0f0f0a10.0.0.15:6379@11428slaveef3cf5e20e1a7cf5f9cc259ed488c82c4aa17171015314719170002connectedef3cf5e20e1a7cf5f9cc259ed488c82c4aa1717110.0.0.15:6379@11324master-015314719162040connected5461-10922原生命令:infoserver自定义命令:infoserveref3cf5e20e1a7cf5f9cc259ed488c82c4aa17171SCAN命令示例:scan0238b45926a528c85f40ae89d6779c802eaa394a2scan0matcha*238b45926a528c85f40ae89d6779c802eaa394a2KEYS命令示例:keysa*238b45926a528c85f40ae89d6779c802eaa394a2

多数据库(DB)支持
混合存储版(集群架构)不支持多 DB,支持 select 0 命令。

低性能命令

linsert、lrem:List 命令族中的 linsert、lrem 命令不建议使用,这两个命令会在磁盘中遍历 list 节点,命令的执行时间复杂度为 O(n),性能较差,list 节点数较大时,命令会执行超时。

append:append 命令在字符长度超过1MB后性能较差。

endis 混合存储版

实例规格:64GB Redis、512GB(SSD云硬盘)Tendis

测试参数:redis-benchmark -d 128 -r 150000000 -c 600

测试结果:

测试场景未触发淘汰
(写入)
触发淘汰
(写入)
读热
(未触发淘汰)
读热
(触发淘汰)(70%缓存命中)
写满淘汰
(-c 30 写入)
混合读取
(缓存命中率52%)
QPS220000 次/秒177162次/秒350000次/秒230000次/秒94000次/秒119000次/秒
redis_cpu99%99%66%99%55%64%
tendis_cpu99%96%-33%--
1ms水位线62.08%55.28%99%37.76%99.86%97.79%
10ms水位线97.99%88.80%99.99%95.83%100%99.99%
平均延迟2ms3.4ms0.9ms2ms0.16ms-
99%延迟11ms32ms1ms34ms1ms2ms
最大延迟20ms-5ms351ms13ms20ms
最大延迟(触发限速)1915ms433ms----

各版本命令兼容性列表

下表中 ✓ 表示支持,x 表示不支持,- 表示该命令不存在跨 Slot 访问的场景:
自定义命令说明,请参见 自定义命令

命令族命令存储版混合存储版集群架构跨 Slot 支持
connection 族auth-
connection 族echo-
connection 族ping自定义自定义-
connection 族quit-
connection 族select-
connection 族swapdbx-
hash 族hdel-
hash 族hexists-
hash 族hget-
hash 族hgetall-
hash 族hincrby-
hash 族hincrbyfloat-
hash 族hkeys-
hash 族hlen-
hash 族hmget-
hash 族hmset-
hash 族hset-
hash 族hsetnx-
hash 族hstrlen-
hash 族hvals-
hash 族hscanxxx
keys 族del
keys 族scanxxx
keys 族existsx
keys 族expire-
keys 族expireat-
keys 族keys自定义自定义-
keys 族type-
keys 族move-
keys 族ttl-
keys 族persist-
keys 族pexpire-
keys 族pexpireat-
keys 族pttl-
keys 族randomkeyx-
keys 族renamex
keys 族renamenxx
keys 族sort-
keys 族touchx-
keys 族restore-
keys 族objectxx-
keys 族unlinkx
keys 族waitxx-
keys 族migratexx-
keys 族dump-
list 族lindex-
list 族linsert-
list 族llen-
list 族lpop-
list 族lpush-
list 族lpushx-
list 族lrange-
list 族lrem-
list 族lset-
list 族ltrim-
list 族rpop-
list 族rpoplpushx
list 族rpush-
list 族rpushx-
list 族blpopxx
list 族brpopxx
list 族brpoplpushxx
pub/sub 族psubscribe-
pub/sub 族pubsub-
pub/sub 族publish-
pub/sub 族punsubscribe-
pub/sub 族subscribe-
pub/sub 族unsubscribe-
sets 族sadd-
sets 族scard-
sets 族sdiffx
sets 族sdiffstorex
sets 族sinterx
sets 族sinterstorex
sets 族sismember-
sets 族smembers-
sets 族smovex
sets 族spop-
sets 族srandmember-
sets 族srem-
sets 族sscanxxx
sets 族sunionx
sets 族sunionstorex
sorted sets 族zadd-
sorted sets 族zcard-
sorted sets 族zcount-
sorted sets 族zincrby-
sorted sets 族zinterstorex
sorted sets 族zlexcount-
sorted sets 族zrange-
sorted sets 族zrangebylex-
sorted sets 族zrangebyscore-
sorted sets 族zrank-
sorted sets 族zrem-
sorted sets 族zremrangebylex-
sorted sets 族zremrangebyrank-
sorted sets 族zremrangebyscore-
sorted sets 族zrevrange-
sorted sets 族zrevrangebylex-
sorted sets 族zrevrangebyscore-
sorted sets 族zscore-
sorted sets 族zrevrank-
sorted sets 族zscanxxx
sorted sets 族zunionstorex
sorted sets 族zpopmaxxx-
sorted sets 族zpopminxx-
sorted sets 族bzpopmaxxx-
sorted sets 族bzpopminxx-
strings 族append-
strings 族bitcount-
strings 族bitopx
strings 族bitpos-
strings 族decr-
strings 族decrby-
strings 族get-
strings 族getbit-
strings 族getrange-
strings 族getset-
strings 族incr-
strings 族incrby-
strings 族incrbyfloat-
strings 族mget
strings 族mset
strings 族msetnxx
strings 族psetex-
strings 族setex-
strings 族set-
strings 族setbit-
strings 族setnx-
strings 族setrange-
strings 族strlen-
strings 族bitfield-
transactions 族discard-
transactions 族exec-
transactions 族multi-
transactions 族unwatch-
transactions 族watch-
hyperloglog 族pfadd-
hyperloglog 族pfcountx
hyperloglog 族pfmergex
scripting 族evalx
scripting 族evalshax
scripting 族script debug-
scripting 族script existsx
scripting 族script flush-
scripting 族script load-
scripting 族script kill-
geo 族geoaddx-
geo 族geohashx-
geo 族geoposx-
geo 族geodistx-
geo 族georadiusx-
geo 族georadiusbymemberx-
server 族bgrewriteaofxx-
server 族bgsavexx-
server 族client killxx-
server 族syncxx-
server 族psyncxx-
server 族client list-
server 族client getnamexx-
server 族client pausexx-
server 族client replyxx-
server 族client setnamexx-
server 族command countxx-
server 族command getkeysxx-
server 族command infoxx-
server 族slaveofxx-
server 族config rewritexx-
server 族config setxx-
server 族config resetstatxx-
server 族debug objectxx-
server 族debug segfaultxx-
server 族rolexx-
server 族savexx-
server 族lastsavexx-
server 族shutdownxx-
server 族MEMORYx自定义-
server 族command-
server 族dbsize-
server 族info自定义自定义-
server 族time-
server 族client list-
server 族config get-
server 族monitor自定义自定义-
server 族flushdb自定义自定义-
server 族flushall-
server 族slowlog自定义自定义-
server 族cluster keyslot-
server 族cluster nodes-
server 族cluster getkeysinslot-
server 族cluster 其他xx-
server 族modulexx-
server 族lolwutxx-
Stream 族xinfoxx-
Stream 族xaddxx-
Stream 族xtrimxx-
Stream 族xdelxx-
Stream 族xrangexx-
Stream 族xrevrangexx-
Stream 族xlenxx-
Stream 族xreadxxx
Stream 族xgroupxx-
Stream 族xreadgroupxxx
Stream 族xackxx-
Stream 族xlclaimxx-
Stream 族xpendingxx-

云数据库 Tendis 提供多地域的支持,目前支持部分主要大区,如果可用区不满足业务要求,您也可以 提交工单 申请部署支持。

地域

说明:

云数据库 Tendis,建议选择与云服务器相同的地域,可降低访问延迟。

腾讯云不同地域之间完全隔离,保证不同地域间最大程度的稳定性和容错性。建议您选择最靠近您用户的地域,可降低访问时延、提高下载速度。用户启动实例、查看实例等操作都是区分地域属性的。
云产品内网通信的注意事项如下:

  • 同地域下(保障同一账号,且同一个 VPC 内)的云资源之间可通过内网互通,可以直接使用 内网 IP 访问。

  • 不同地域之间网络完全隔离,不同地域之间的云产品默认不能通过内网互通。

  • 处于不同私有网络的云产品,可以通过 云联网 进行通信,此通信方式更较为高速、稳定。

可用区

可用区(Zone)是指腾讯云在同一地域内电力和网络互相独立的物理数据中心。目标是能够保证可用区间故障相互隔离(大型灾害或者大型电力故障除外),不出现故障扩散,使得用户的业务持续在线服务。通过启动独立可用区内的实例,用户可以保护应用程序不受单一位置故障的影响。

地域和可用性列表

地域(Region)和可用区(Zone)构成:

中国

地域可用区
华南地区(广州)
ap-guangzhou
广州三区
ap-guangzhou-3
广州四区
ap-guangzhou-4
华东地区(上海)
ap-shanghai
上海四区
ap-shanghai-4
上海六区
ap-shanghai-6
华北地区(北京)
ap-beijing
北京五区
ap-beijing-5
港澳台地区(中国香港)
ap-hongkong
香港三区(中国香港节点可用于覆盖港澳台地区)
ap-hongkong-3

其他国家和地区

地域可用区
美国西部(硅谷)
na-siliconvalley
硅谷二区(硅谷节点可用于覆盖美国西部)
na-siliconvalley-2


  • 名称: 云数据库 TencentDB for Tendis
  • 关键词: 腾讯云数据库 TencentDB for Tendis,分布式KV存储数据库,tendis数据库运维托管