API 文档

CKV 版(集群架构)

最近更新时间:2020-06-08 16:01:33

说明:

云数据库 Redis CKV 版已暂停售卖,建议您选择 云数据库 Redis 内存版

云数据库 Redis CKV 版(集群架构)提供双副本集群实例,突破单线程瓶颈,可极大满足对于大容量或高性能的业务需求,CKV 版(集群架构)兼容 Redis 3.2 版本协议和命令,最大支持128个分片,支持12GB - 48TB容量。

功能特性

  • 服务可靠
    采用双机主从架构,主从节点位于不同物理机。主节点对外提供访问,用户可通过 Redis 命令行和通用客户端进行数据的增删改查操作,从节点提供数据备份以及高可用。当主节点出现故障,自研的 HA 系统会自动进行主从切换,保证业务平稳运行。
  • 数据可靠
    默认开启数据持久化功能,数据全部存储到磁盘。支持数据备份功能,用户可针对备份集回滚实例或者克隆实例,有效的解决数据误操作等问题。
  • 更低时延
    CKV 采用高性能网络平台、以及无 Proxy 架构,极大的降低了访问延迟和网络延迟。在高负载场景下,时延最多降低高达60%。
  • 从机只读
    CKV 版(集群架构)可以通过开启从机来显著提升读性能,平均情况可以提升40%的读性能,CKV 版(集群架构)默认未开启从机只读,目前可以 提交工单 申请从机只读。由于 CKV 主节点和从节点存在复制延迟,开通从机只读后,会出现读到旧版本数据的情况,开通此功能前请确认业务可以接受读数据不一致的情况。
  • 平滑升级
    CKV 版(集群架构)通过独有的方案,保证版本升级做到业务无感知,从而保证服务的最大可用性。

适用场景

  • 单实例数据量较大
    CKV 版(集群架构)是分布式架构,适用于单实例容量较大的场景,容量可突破 CKV 标准版384GB上限。
  • QPS 及并发要求高
    由于CKV 版(集群架构)是分布式架构,将读写分摊在多个节点上,在 Key 分布均匀的情况下,QPS 随节点数线性增涨,目前最大支持128个分片,千万级 QPS 性能 。
  • 协议支持不敏感
    CKV 版(集群架构)对比开源版本在协议支持上有少量协议不支持。

连接示例

CKV 版(集群架构)仅支持“实例 ID:密码”的密码格式类型,例如您的实例 ID 是 crs-bkuza6i3,设置的密码是 abcd1234,则连接命令是 redis-cli -h IP 地址 -p 端口 -a crs-bkuza6i3:abcd1234

使用限制

  • CKV 引擎的 pttl 设置展示最小单位为秒,与社区版 Redis 不一致。
  • 目前支持的 string 类型 Key,Value 最大 Size 为32MB,与社区版 Redis 不一致。
  • 除 mset、mget 批量操作不受限制之外,其他批量操作,都要求批量的 Key 是在相同的 slot 中,否则会报错,提示CROSSSLOT Keys in request don't hash to the same slot
  • 当分片写满后,subscribe、psubscribe 需要占用一定内存,新增全新订阅会受到影响,不影响已订阅 channel 的 publish。

特殊说明

  • 目前CKV 版(集群架构)单个分片的大小默认是4GB,因此建议单个 key 的 value 大小不要超过4GB。
  • 目前CKV 版(集群架构)提供集群维度的监控。

兼容性

CKV 版(集群架构)支持的命令

connection 族 geo 族 hashes 族 hyperloglog 族 keys 族 lists 族 pub/sub 族
auth geoadd hdel pfadd del lindex psubscribe
echo geohash hexists pfcount exists linsert pubsub
ping geopos hget pfmerge expire llen publish
quit geodist hgetall - expireat lpop punsubscribe
select georadius hincrby - type lpush subscribe
- georadiusbymember hincrbyfloat - ttl lpushx unsubscribe
- - hkeys - persist lrange -
- - hlen - pexpire lrem -
- - hmget - pexpireat lset -
- - hmset - pttl ltrim -
- - hset - rename rpop -
- - hsetnx - renamenx rpoplpush -
- - hstrlen - sort rpush -
- - hvals - - rpushx -
- - hscan - - - -
sets 族 sorted sets 族 strings 族 transactions 族 server 族
sadd zadd append discard command
scard zcard bitcount exec dbsize
sdiff zcount bitop multi -
sdiffstore zincrby bitpos unwatch -
sinter zinterstore decr watch -
sinterstore zlexcount decrby - -
sismember zrange get - -
smembers zrangebylex getbit - -
smove zrangebyscore getrange - -
spop zrank getset - -
srandmember zrem incr - -
srem zremrangebylex incrby - -
sscan zremrangebyrank incrbyfloat - -
sunion zremrangebyscore mget - -
sunionstore zrevrange mset - -
- zrevrangebylex msetnx - -
- zrevrangebyscore psetex - -
- zrevrank set - -
- zscan setbit - -
- zscore setex - -
- zunionstore setnx - -
- - setrange - -
- - strlen - -

CKV 版(集群架构)不支持的命令:

cluster 族 connection 族 keys 族 lists 族 scripting 族 server 族 strings 族
cluster addslots swapdb touch blpop eval bgrewriteaof bitfield
cluster count-failure-reports - restore brpop evalsha bgsave -
cluster delslots - object brpoplpush script debug client kill -
cluster failover - unlink - script exists client list -
cluster forget - wait - script flush client getname -
cluster meet - migrate - script kill client pause -
cluster replicate - dump - script load client reply -
cluster reset - scan - - client setname -
cluster saveconfig - keys - - command count -
cluster set-config-epoch - move - - command getkeys -
cluster setslot - randomkey - - command info -
cluster slaves - - - - config get -
readonly - - - - config rewrite -
readwrite - - - - config set -
- - - - - config resetstat -
- - - - - debug object -
- - - - - debug segfault -
- - - - - flushall -
- - - - - flushdb -
- - - - - lastsave -
- - - - - monitor -
- - - - - role -
- - - - - save -
- - - - - shutdown -
- - - - - slaveof -
- - - - - slowlog -
- - - - - sync -
- - - - - info -
目录