分布式缓存Redis

实例受限使用命令

2024-05-15 09:50:43

Cluter集群(直连模式)命令限制

Cluster集群实例支持多个Key的命令,但要求保持与开源Redis Cluster的行为一致,不支持跨SLOT访问REDIS命令。具体来说如下:

1.不支持多db,只能select 0。不支持select其他db.

2.要求单个命令操作的KEY都分布在同一个SLOT上。为了保证这个效果,建议可以使用hash tag

3.支持事务和PUB/SUB订阅,但要求相关操作的KEY都在同一个SLOT上。

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

命令类型

命令

SCRIPTING

SCRIPT

EVAL

EVALSHA

GENERIC

SCAN

DEL

UNLINK

DBSIZE

STRING

MSET

MGET

SET

SUNION

SUNIONSTORE

SDIFF

SDIFFSTORE

SINTER

SINTERSTORE

PUB/SUB

SUBSCRIBE

PSUBSCRIBE

PUBLISH

UNSUBSCRIBE

PUNSUBSCRIBE

PUBSUB CHANNELS

PUBSUB NUMPA

PUBSUB NUMSU

STREAM

XGROU

XINFO

XREAD

XREADGROUP

 

代理模式集群命令限制

代理模式在集群模式的基础上,有如下的不同。

1.支持多DB,可以SELECT命令

2.支持MSET,MSET等跨SLOT的多个KEY命令支持。 具体参考下面的表1

3.不支持CLUSTER KEYSLOT以外CLUSTER的命令

4.Client KILLCLIENT LIST命令只能操作当前代理的客户端信息,不代表整个实例的。

5.代理模式下的事务、脚本执行都是按slot拆分发到对应节点执行的,同一个slot的事务不会被拆分,但不能保证跨SLOT事务一致性。

2 代理模式集群支持多SLOT命令:

命令类型

命令

Strings

MSETNX

Set

SINTER

SINTERSTORE

SUNION

SUNIONSTORE

SDIFF

SDIFFSTORE

SMOVE

Sortedset

ZUNIONSTORE

ZINTERSTORE

HyperLogLog

PFCOUNT

PFMERGE

Keys

RENAME

RENAMENX

BITOP

RPOPLPUSH


NiuWnKzqioOt