更新时间:2022-04-20 GMT+08:00
分享

实例受限使用命令

集群实例支持多个key,但不支持跨slot访问的Redis命令,如表1

Redis 4.0 proxy集群及主备读写分离实例受限使用的命令如表2表3

Redis 5.0 proxy集群及主备读写分离实例受限使用的命令如表4表5

表1 Cluster集群实例受限使用的Redis命令

命令类型

命令描述

Set(集合)

SINTER

返回一个集合的全部成员,该集合是所有给定集合的交集

SINTERSTORE

类似SINTER,但结果保存到destination集合

SUNION

返回一个集合的全部成员,该集合是所有给定集合的并集

SUNIONSTORE

和SUNION类似,但它将结果保存到destination集合

SDIFF

返回一个集合的全部成员,该集合是所有给定集合之间的差集

SDIFFSTORE

和SDIFF类似,但它将结果保存到destination集合

SMOVE

将member元素从source集合移动到destination集合

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上缓存实例的状态会变成异常,命令执行结束后,实例状态会恢复正常。

表2 Redis 4.0 proxy集群实例受限使用的Redis命令

命令类型

命令

受限使用条件

Set(集合)

SMOVE

proxy集群要求源key和目标key在同一个slot

GEO(地理位置)

GEORADIUS

  • Proxy集群实例要求传入的key都在同一个slot中。
  • Proxy集群的多DB模式下暂不支持带STORE参数。

GEORADIUSBYMEMBER

GEOSEARCHSTORE

Connection(连接)

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特性之前需要先清空数据。

HyperLogLog

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

Transactions(事务)

WATCH

Proxy集群实例要求传入的key都在同一个slot中。

Streams(流)

XACK

proxy集群目前不支持streams的使用。

XADD

XCLAIM

XDEL

XGROUP

XINFO

XLEN

XPENDING

XRANGE

XTRIM

XREVRANGE

XREAD

XREADGROUP GROUP

表3 Redis 4.0读写分离实例受限使用的Redis命令

命令类型

命令

受限使用条件

Connection(连接)

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
表4 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

Connection(连接)

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特性之前需要先清空数据。

HyperLogLog

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

Transactions(事务)

WATCH

Proxy集群实例要求传入的key都在同一个slot中。

Streams(流)

XACK

proxy集群目前不支持streams的使用。

XADD

XCLAIM

XDEL

XGROUP

XINFO

XLEN

XPENDING

XRANGE

XTRIM

XREVRANGE

XREAD

XREADGROUP GROUP

表5 Redis 5.0读写分离实例受限使用的Redis命令

命令类型

命令

受限使用条件

Connection(连接)

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

不支持BLOCK选项。

XREADGROUP GROUP

分享:

    相关文档

    相关产品

close