集群实例支持多个key,但不支持跨slot访问的Redis命令,如表5-36。
Redis 4.0 proxy集群及主备读写分离实例受限使用的命令如表5-37和表5-38。
Redis 5.0 proxy集群及主备读写分离实例受限使用的命令如表5-39和表5-40。
表5-36 Cluster 集群实例受限使用的 Redis 命令
命令类型 命令描述
Set(集合)
SINTER 返回一个集合的全部成员,该集合是所有给定集合的交集 SINTERSTORE 类似SINTER,但结果保存到destination集合
SUNION 返回一个集合的全部成员,该集合是所有给定集合的并集 SUNIONSTORE 和SUNION类似,但它将结果保存到destination集合 SDIFF 返回一个集合的全部成员,该集合是所有给定集合之间的差
集
SDIFFSTORE 和SDIFF类似,但它将结果保存到destination集合 SMOVE 将member元素从source集合移动到destination集合
产品介绍 5 开源命令兼容性
命令类型 命令描述 SortedSet(有序集合)
ZUNIONSTORE 计算给定的一个或多个有序集的并集 ZINTERSTORE 计算给定的一个或多个有序集的交集 HyperLogLog
PFCOUNT 返回储存在给定键(或多个键)的HyperLogLog的近似基数 PFMERGE 将多个HyperLogLog合并(merge)为一个HyperLogLog Keys
RENAME 将key改名
RENAMENX 将key改名,新key必须是之前不存在的
BITOP 对一个或多个保存二进制位的字符串key进行位元操作,并 将结果保存到destkey上
RPOPLPUSH 返回并移除存储在source的列表的最后一个元素(列表尾部 元素), 并把该元素放入存储在destination的列表的第一 个元素位置(列表头部)
String(字符串)
MSETNX 同时设置一个或多个key-value对
说明
当用户执行比较耗时的命令(如flushall)时,可能会导致缓存实例在命令执行期间对外不响应 用户的其它命令,造成状态监控失效,此时Console上缓存实例的状态会变成异常,命令执行结 束后,实例状态会恢复正常。
表5-37 Redis 4.0 proxy 集群实例受限使用的 Redis 命令
命令类型 命令 受限使用条件
Set(集
合) SMOVE proxy集群要求源key和目标key在同
一个slot GEO(地
理位置) GEORADIUS ● Proxy集群实例要求传入的key都在 同一个slot中。
● Proxy集群的多DB模式下暂不支持 带STORE参数。
GEORADIUSBYMEMBER GEOSEARCHSTORE Connectio
n(连接) CLIENT KILL ● 仅支持两种形式:
– CLIENT KILL ip:port – CLIENT KILL ADDR ip:port
● id字段为随机值,不满足idc1<idc2
→Tc1<Tc2
产品介绍 5 开源命令兼容性
命令类型 命令 受限使用条件
CLIENT LIST ● 仅支持两种形式:
– CLIENT LIST
– CLIENT LIST [TYPE normal|
master|replica|pubsub]
● id字段为随机值,不满足idc1<idc2
→Tc1<Tc2
SELECT index Proxy集群的多DB支持当前通过改key 实现,不推荐使用该方案。
Proxy集群支持多DB限制
1. 后端存储会按照一定规则对key进 行改写,导出RDB数据中的key不 是原始的key,但通过Redis协议访 问无影响。
2. flushdb命令采用逐个key删除的方 式执行,耗时久。
3. swapdb不支持。
4. info keyspace不支持多DB展示。
5. dbsize命令非常耗时,禁止在代码 中使用。
6. 多DB场景下keys命令和scan命令 性能会有损失(最多50%)。
7. LUA脚本中不支持多DB。
8. RANDOMKEY命令不支持。
9. 默认不开启多DB,开启和关闭多 DB特性之前需要先清空数据。
HyperLogL
og PFCOUNT Proxy集群实例要求传入的key都在同
一个slot中。
PFMERGE Keys
(键) RENAME Proxy集群实例要求传入的key都在同
一个slot中。
RENAMENX
SCAN Proxy集群实例不支持在pipeline中使 用SCAN命令。
Lists(列
表) BLPOP Proxy集群实例要求传入的key都在同
一个slot中。
BRPOP BRPOPLPUSH Pub/Sub
(发布/订 阅)
PSUBSCRIBE Proxy集群事件订阅,不支持键空间 事件订阅,键空间事件订阅虽不会失 败,但功能本身不支持。
产品介绍 5 开源命令兼容性
命令类型 命令 受限使用条件 Scripting
(脚本) EVAL ● Proxy集群实例要求传入的key都在
同一个slot中。
● Proxy集群开启多DB时,KEYS参数 会被修改,Lua脚本中使用到KEYS 的地方需要注意。
EVALSHA
Server(服 务器)
MEMORY DOCTOR proxy集群要在命令后面加上节点的 ip:port。
MEMORY HELP
MEMORY MALLOC-STATS MEMORY PURGE
MEMORY STATS MEMORY USAGE MONITOR Strings
(字符 串)
BITOP Proxy集群实例要求传入的key都在同 一个slot中。
MSETNX Transactio
ns(事 务)
WATCH Proxy集群实例要求传入的key都在同 一个slot中。
表5-38 Redis 4.0 读写分离实例受限使用的 Redis 命令
命令类型 命令 受限使用条件
Connectio
n(连接) CLIENT KILL ● 仅支持两种形式:
– CLIENT KILL ip:port – CLIENT KILL ADDR ip:port
● id字段为随机值,不满足idc1<idc2
→Tc1<Tc2
CLIENT LIST ● 仅支持两种形式:
– CLIENT LIST
– CLIENT LIST [TYPE normal|
master|replica|pubsub]
● id字段为随机值,不满足idc1<idc2
→Tc1<Tc2
产品介绍 5 开源命令兼容性
表5-39 Redis 5.0 proxy 集群实例受限使用的 Redis 命令
命令类型 命令 受限使用条件
Set(集
合) SMOVE proxy集群要求源key和目标key在同
一个slot Sorted Set
(有序集 合)
BZPOPMAX Proxy集群实例要求传入的key都在同 一个slot中
BZPOPMIN GEO(地
理位置) GEORADIUS ● Proxy集群实例要求传入的key都在 同一个slot中。
● Proxy集群的多DB模式下暂不支持 带STORE参数。
GEORADIUSBYMEMBER GEOSEARCHSTORE Connectio
n(连接) CLIENT KILL ● 仅支持两种形式:
– CLIENT KILL ip:port – CLIENT KILL ADDR ip:port
● id字段为随机值,不满足idc1<idc2
→Tc1<Tc2
CLIENT LIST ● 仅支持两种形式:
– CLIENT LIST
– CLIENT LIST [TYPE normal|
master|replica|pubsub]
● id字段为随机值,不满足idc1<idc2
→Tc1<Tc2
SELECT index Proxy集群的多DB支持当前通过改key 实现,不推荐使用该方案。
Proxy集群支持多DB限制
1. 后端存储会按照一定规则对key进 行改写,导出RDB数据中的key不 是原始的key,但通过Redis协议访 问无影响。
2. flushdb命令采用逐个key删除的方 式执行,耗时久。
3. swapdb不支持。
4. info keyspace不支持多DB展示。
5. dbsize命令非常耗时,禁止在代码 中使用。
6. 多DB场景下keys命令和scan命令 性能会有损失(最多50%)。
7. LUA脚本中不支持多DB。
8. RANDOMKEY命令不支持。
9. 默认不开启多DB,开启和关闭多 DB特性之前需要先清空数据。
产品介绍 5 开源命令兼容性
命令类型 命令 受限使用条件 HyperLogL
og PFCOUNT Proxy集群实例要求传入的key都在同
一个slot中。
PFMERGE Keys
(键) RENAME Proxy集群实例要求传入的key都在同
一个slot中。
RENAMENX
SCAN Proxy集群实例不支持在pipeline中使 用SCAN命令。
Lists(列
表) BLPOP Proxy集群实例要求传入的key都在同
一个slot中。
BRPOP BRPOPLPUSH Pub/Sub
(发布/订 阅)
PSUBSCRIBE Proxy集群事件订阅,不支持键空间 事件订阅,键空间事件订阅虽不会失 败,但功能本身不支持。
Scripting
(脚本) EVAL ● Proxy集群实例要求传入的key都在
同一个slot中。
● Proxy集群开启多DB时,KEYS参数 会被修改,Lua脚本中使用到KEYS 的地方需要注意。
EVALSHA
Server(服
务器) MEMORY DOCTOR proxy集群要在命令后面加上节点的 ip:port。
MEMORY HELP
MEMORY MALLOC-STATS MEMORY PURGE
MEMORY STATS MEMORY USAGE MONITOR Strings
(字符 串)
BITOP Proxy集群实例要求传入的key都在同 一个slot中。
MSETNX Transactio
ns(事 务)
WATCH Proxy集群实例要求传入的key都在同 一个slot中。
Streams
(流) XACK Proxy集群开启多DB时不支持。
XADD XCLAIM XDEL
产品介绍 5 开源命令兼容性
命令类型 命令 受限使用条件 XGROUP
XINFO XLEN XPENDING XRANGE XTRIM XREVRANGE
XREAD ● Proxy集群开启多DB时不支持。
● Proxy集群要求多个key在同一个 slot。
● 不支持BLOCK选项。
XREADGROUP GROUP
表5-40 Redis 5.0 读写分离实例受限使用的 Redis 命令
命令类型 命令 受限使用条件
Connectio
n(连接) CLIENT KILL ● 仅支持两种形式:
– CLIENT KILL ip:port – CLIENT KILL ADDR ip:port
● id字段为随机值,不满足idc1<idc2
→Tc1<Tc2
CLIENT LIST ● 仅支持两种形式:
– CLIENT LIST
– CLIENT LIST [TYPE normal|
master|replica|pubsub]
● id字段为随机值,不满足idc1<idc2
→Tc1<Tc2 Streams
(流) XREAD ● Proxy集群开启多DB时不支持。
● Proxy集群要求多个key在同一个 slot。
● 不支持BLOCK选项。
XREADGROUP GROUP