更新时间:2024-03-01 GMT+08:00
分享

Redis实例类型差异

Redis单机、主备、读写分离、Proxy集群和Cluster集群实例,在特性支持、特性限制以及命令限制有部分差异,具体请查看表1

DCS Redis 3.0已下线,暂停售卖,建议使用Redis 4.0及以上版本。

表1 不同实例类型的差异说明

对比项

单机/主备/读写分离

Proxy集群

Cluster集群

兼容Redis版本

兼容开源Redis 3.0、4.0、5.0、6.0。可在创建实例时选择版本号。

Redis 6.0企业版基于开源社区KeyDB开发,当前只支持主备实例。

兼容开源Redis 3.0、4.0、5.0。可在创建实例时选择版本号。

兼容开源Redis 4.0/5.0/6.0版本。可在创建实例时选择版本号。

特性支持

  • 支持event notify。
  • 支持pipeline。
  • 支持pipeline、mset、mget。
  • 支持scan、keys、slowlog。
  • 支持发布订阅。
  • 支持event notify。
  • 支持brpop、blpop、brpoplpush。
  • 支持发布订阅。

特性限制

仅单机实例不支持数据持久化及备份与恢复的功能。

  • lua脚本受限使用,所有的key必须在同一个slot,否则会报错,建议使用hashtag技术。
  • 支持多个key的命令中,部分命令要求所有key必须属于同一个slot,否则会报错,建议使用hashtag技术。具体限制多个key必须属于同一slot的命令,请参考Proxy集群多Key命令说明
  • 不支持event notify用法。
  • lua脚本受限使用,所有的key必须在同一个slot,建议使用hashtag技术。
  • 需要客户端SDK支持redis cluster协议,需要能够处理"-MOVED"响应。
  • 使用pipeline、mset/mget模式时,所有key必须属于同一个slot,否则报错,建议使用hashtag技术。
  • 使用event notify时,需要建立与每个redis-server的连接,分别处理每个连接上的事件。
  • 执行scan、keys等遍历类或者全局类命令时,需要对每个redis-server分别执行该命令。

客户端协议

使用传统Redis客户端即可。

使用传统Redis客户端即可,不需要支持Redis Cluster协议。

需要客户端支持Redis Cluster协议。

命令限制

不支持的Redis命令,请参考开源命令兼容性

读写分离实例受限使用的命令请参考实例受限使用的Redis命令

不支持的Redis命令,请参考开源命令兼容性

Proxy集群实例受限使用的命令请参考实例受限使用的Redis命令

不支持的Redis命令,请参考开源命令兼容性

Cluster集群实例受限使用的命令请参考实例受限使用的Redis命令

副本数

单机实例为单副本,只有一个节点。

主备和读写分离实例默认为双副本,默认为一主一从的架构。

在创建Redis 4.0、5.0主备和读写分离实例时,支持自定义副本数,形成一主多从的架构。目前Redis 3.0、Redis 6.0主备不支持自定义副本数。

每个集群分片都为双副本,但不支持为分片新增副本,每个分片是一主一从的架构。

每个集群分片默认为双副本,支持自定义副本数,可以是一主多从的架构。在创建实例时,也可以定义为单副本,单副本表示实例只有主节点,无法保障数据高可靠。

分享:

    相关文档

    相关产品