

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 支持的和限制的 Valkey、Memcached 和 Redis OSS 命令
<a name="SupportedCommands"></a>

## 支持的 Valkey 和 Redis OSS 命令
<a name="SupportedCommandsRedis"></a>

**支持的 Valkey 和 Redis OSS 命令**

无服务器缓存支持以下 Valkey 和 Redis OSS 命令。除了这些命令外，还支持这些 [支持的 Valkey 和 Redis OSS 命令JSON 命令](json-list-commands.md) 命令。

有关 Bloom Filter 命令的信息，请参阅[Bloom 筛选命令](BloomFilters.md#SupportedCommandsBloom)

**位图命令**
+ `BITCOUNT`

  计算字符串中的设置位数（群体计数）。

  [了解详情](https://valkey.io/commands/bitcount/)
+ `BITFIELD`

  对字符串执行任意位字段整数运算。

  [了解详情](https://valkey.io/commands/bitfield/)
+ `BITFIELD_RO`

  对字符串执行任意只读位字段整数运算。

  [了解详情](https://valkey.io/commands/bitfield_ro/)
+ `BITOP`

  对多个字符串执行按位运算，并存储结果。

  [了解详情](https://valkey.io/commands/bitop/)
+ `BITPOS`

  查找字符串中的第一个设置（1）或清除（0）位。

  [了解详情](https://valkey.io/commands/bitpos/)
+ `GETBIT`

  按偏移量返回位值。

  [了解详情](https://valkey.io/commands/getbit/)
+ `SETBIT`

  设置或清除字符串值中偏移量处的位。创建键（如果它不存在）。

  [了解详情](https://valkey.io/commands/setbit/)

**集群管理命令**
+ `CLUSTER COUNTKEYSINSLOT`

  返回哈希槽中的键数。

  [了解详情](https://valkey.io/commands/cluster-countkeysinslot/)
+ `CLUSTER GETKEYSINSLOT`

  返回哈希槽中的键名称。

  [了解详情](https://valkey.io/commands/cluster-getkeysinslot/)
+ `CLUSTER INFO`

  返回有关节点状态的信息。在无服务器缓存中，返回有关显示给客户端的单个虚拟“分片”的状态。

  [了解详情](https://valkey.io/commands/cluster-info/)
+ `CLUSTER KEYSLOT`

  返回键的哈希槽。

  [了解详情](https://valkey.io/commands/cluster-keyslot/)
+ `CLUSTER MYID`

  返回节点的 ID。在无服务器缓存中，返回有关显示给客户端的单个虚拟“分片”的状态。

  [了解详情](https://valkey.io/commands/cluster-myid/)
+ `CLUSTER NODES`

  返回节点的集群配置。在无服务器缓存中，返回有关显示给客户端的单个虚拟“分片”的状态。

  [了解详情](https://valkey.io/commands/cluster-nodes/)
+ `CLUSTER REPLICAS`

  列出主节点的副本节点。在无服务器缓存中，返回有关显示给客户端的单个虚拟“分片”的状态。

  [了解详情](https://valkey.io/commands/cluster-replicas/)
+ `CLUSTER SHARDS`

  返回集群槽与分片的映射。在无服务器缓存中，返回有关显示给客户端的单个虚拟“分片”的状态。

  [了解详情](https://valkey.io/commands/cluster-shards/)
+ `CLUSTER SLOTS`

  返回集群槽与节点的映射。在无服务器缓存中，返回有关显示给客户端的单个虚拟“分片”的状态。

  [了解详情](https://valkey.io/commands/cluster-slots/)
+ `CLUSTER SLOT-STATS`

  允许跟踪每个槽的指标，包括键数、CPU 利用率、网络输入字节数和网络输出字节数。

  [了解详情](https://valkey.io/commands/cluster-slot-stats/)
+ `READONLY`

  为与 Valkey 和 Redis OSS 集群副本节点的连接启用只读查询。

  [了解详情](https://valkey.io/commands/readonly/)
+ `READWRITE`

  为与 Valkey 或 Redis OSS 集群副本节点的连接启用只写查询。

  [了解详情](https://valkey.io/commands/readwrite/)
+ `SCRIPT SHOW`

  返回脚本缓存中脚本的原始源代码。

  [了解详情](https://valkey.io/commands/script-show/)

**连接管理命令**
+ `AUTH`

  对连接进行身份验证。

  [了解详情](https://valkey.io/commands/auth/)
+ `CLIENT GETNAME`

  返回连接的名称。

  [了解详情](https://valkey.io/commands/client-getname/)
+ `CLIENT REPLY`

  指示服务器是否回复命令。

  [了解详情](https://valkey.io/commands/client-reply/)
+ `CLIENT SETNAME`

  设置连接名称。

  [了解详情](https://valkey.io/commands/client-setname/)
+ `ECHO`

  返回给定字符串。

  [了解详情](https://valkey.io/commands/echo/)
+ `HELLO`

  与 Valkey 或 Redis OSS 服务器握手。

  [了解详情](https://valkey.io/commands/hello/)
+ `PING`

  返回服务器的活跃度响应。

  [了解详情](https://valkey.io/commands/ping/)
+ `QUIT`

  关闭连接。

  [了解详情](https://valkey.io/commands/quit/)
+ `RESET`

  重置连接。

  [了解详情](https://valkey.io/commands/reset/)
+ `SELECT`

  更改所选数据库。

  [了解详情](https://valkey.io/commands/select/)

**通用命令**
+ `COPY`

  将键的值复制到新键中。

  [了解详情](https://valkey.io/commands/copy/)
+ `DEL`

  删除一个或多个键。

  [了解详情](https://valkey.io/commands/del/)
+ `DELIFEQ`

  仅当给定密钥的当前值等于提供的值时，才将其删除。

  [了解详情](https://valkey.io/commands/delifeq/)
+ `DUMP`

  返回存储在某个键上的值的序列化表示形式。

  [了解详情](https://valkey.io/commands/dump/)
+ `EXISTS`

  确定是否存在一个或多个键。

  [了解详情](https://valkey.io/commands/exists/)
+ `EXPIRE`

  以秒为单位设置键的过期时间。

  [了解详情](https://valkey.io/commands/expire/)
+ `EXPIREAT`

  以 Unix 时间戳的格式设置键的过期时间。

  [了解详情](https://valkey.io/commands/expireat/)
+ `EXPIRETIME`

  以 Unix 时间戳的格式返回键的过期时间。

  [了解详情](https://valkey.io/commands/expiretime/)
+ `PERSIST`

  移除键的过期时间。

  [了解详情](https://valkey.io/commands/persist/)
+ `PEXPIRE`

  以毫秒为单位设置键的过期时间。

  [了解详情](https://valkey.io/commands/pexpire/)
+ `PEXPIREAT`

  以 Unix 毫秒时间戳的格式设置键的过期时间。

  [了解详情](https://valkey.io/commands/pexpireat/)
+ `PEXPIRETIME`

  以 Unix 毫秒时间戳的格式返回键的过期时间。

  [了解详情](https://valkey.io/commands/pexpiretime/)
+ `PTTL`

  以毫秒为单位返回键的过期时间。

  [了解详情](https://valkey.io/commands/pttl/)
+ `RANDOMKEY`

  从数据库中返回随机键名称。

  [了解详情](https://valkey.io/commands/randomkey/)
+ `RENAME`

  重命名键并覆盖目标。

  [了解详情](https://valkey.io/commands/rename/)
+ `RENAMENX`

  仅在目标键名称不存在时重命名键。

  [了解详情](https://valkey.io/commands/renamenx/)
+ `RESTORE`

  根据值的序列化表示形式创建键。

  [了解详情](https://valkey.io/commands/restore/)
+ `SCAN`

  遍历数据库中的键名。

  [了解详情](https://valkey.io/commands/scan/)
+ `SORT`

  对列表、集或排序集中的元素进行排序，可以选择将结果存储起来。

  [了解详情](https://valkey.io/commands/sort/)
+ `SORT_RO`

  返回列表、集或排序集的排序元素。

  [了解详情](https://valkey.io/commands/sort_ro/)
+ `TOUCH`

  返回在更新最后一次访问键的时间后，指定键中现有键的数量。

  [了解详情](https://valkey.io/commands/touch/)
+ `TTL`

  以秒为单位返回键的过期时间。

  [了解详情](https://valkey.io/commands/ttl/)
+ `TYPE`

  确定存储在键中的值的类型。

  [了解详情](https://valkey.io/commands/type/)
+ `UNLINK`

  异步删除一个或多个键。

  [了解详情](https://valkey.io/commands/unlink/)

**地理空间命令**
+ `GEOADD`

  将一个或多个成员添加到地理空间索引。如果键不存在，则创建它。

  [了解详情](https://valkey.io/commands/geoadd/)
+ `GEODIST`

  返回地理空间索引的两个成员之间的距离。

  [了解详情](https://valkey.io/commands/geodist/)
+ `GEOHASH`

  以地理哈希字符串的格式返回地理空间索引中的成员。

  [了解详情](https://valkey.io/commands/geohash/)
+ `GEOPOS`

  从地理空间索引返回成员的经度和纬度。

  [了解详情](https://valkey.io/commands/geopos/)
+ `GEORADIUS`

  查询与坐标相隔一定距离内的成员的地理空间索引，可以选择将结果存储起来。

  [了解详情](https://valkey.io/commands/georadius/)
+ `GEORADIUS_RO`

  从地理空间索引中返回与坐标相隔一定距离内的成员。

  [了解详情](https://valkey.io/commands/georadius_ro/)
+ `GEORADIUSBYMEMBER`

  查询与某个成员相隔一定距离内的成员的地理空间索引，可以选择将结果存储起来。

  [了解详情](https://valkey.io/commands/georadiusbymember/)
+ `GEORADIUSBYMEMBER_RO`

  从地理空间索引中返回与成员相隔一定距离内的成员。

  [了解详情](https://valkey.io/commands/georadiusbymember_ro/)
+ `GEOSEARCH`

  查询方框或圆圈区域内成员的地理空间索引。

  [了解详情](https://valkey.io/commands/geosearch/)
+ `GEOSEARCHSTORE`

  查询方框或圆圈区域内成员的地理空间索引，可以选择将结果存储起来。

  [了解详情](https://valkey.io/commands/geosearchstore/)

**哈希命令**
+ `HDEL`

  从哈希中删除一个或多个字段及其值。如果没有字段剩余，则删除哈希。

  [了解详情](https://valkey.io/commands/hdel/)
+ `HEXISTS`

  确定哈希中是否存在某个字段。

  [了解详情](https://valkey.io/commands/hexists/)
+ `HGET`

  返回哈希中某个字段的值。

  [了解详情](https://valkey.io/commands/hget/)
+ `HGETALL`

  返回哈希中的所有字段和值。

  [了解详情](https://valkey.io/commands/hgetall/)
+ `HINCRBY`

  将哈希中某个字段的整数值增加一个数字。如果该字段不存在，则使用 0 作为初始值。

  [了解详情](https://valkey.io/commands/hincrby/)
+ `HINCRBYFLOAT`

  将某个字段的浮点值增加一个数字。如果该字段不存在，则使用 0 作为初始值。

  [了解详情](https://valkey.io/commands/hincrbyfloat/)
+ `HKEYS`

  返回哈希中的所有字段。

  [了解详情](https://valkey.io/commands/hkeys/)
+ `HLEN`

  返回哈希中的字段数。

  [了解详情](https://valkey.io/commands/hlen/)
+ `HMGET`

  返回哈希中的所有字段的值。

  [了解详情](https://valkey.io/commands/hmget/)
+ `HMSET`

  设置多个字段的值。

  [了解详情](https://valkey.io/commands/hmset/)
+ `HRANDFIELD`

  从哈希返回一个或多个随机字段。

  [了解详情](https://valkey.io/commands/hrandfield/)
+ `HSCAN`

  遍历哈希的字段和值。

  [了解详情](https://valkey.io/commands/hscan/)
+ `HSET`

  在哈希中创建或修改某个字段的值。

  [了解详情](https://valkey.io/commands/hset/)
+ `HSETNX`

  仅当哈希中不存在某个字段时才设置该字段的值。

  [了解详情](https://valkey.io/commands/hsetnx/)
+ `HSTRLEN`

  返回某个字段的值的长度。

  [了解详情](https://valkey.io/commands/hstrlen/)
+ `HVALS`

  返回哈希中的所有值。

  [了解详情](https://valkey.io/commands/hvals/)
+ `HSETEX`

  在哈希中设置每个字段的过期时间。创建键（如果它不存在）。

  [了解详情](https://valkey.io/commands/hsetex/)
+ `HGETEX`

  返回哈希中字段的值，并可选择设置其过期时间。

  [了解详情](https://valkey.io/commands/hgetex/)
+ `HGETDEL`

  返回哈希中字段的值并将其删除。

  [了解详情](https://valkey.io/commands/hgetdel/)
+ `HEXPIRE`

  以秒为单位设置哈希字段的过期时间。

  [了解详情](https://valkey.io/commands/hexpire/)
+ `HEXPIREAT`

  将哈希字段的过期时间设置为 Unix 时间戳。

  [了解详情](https://valkey.io/commands/hexpireat/)
+ `HPEXPIRE`

  以毫秒为单位设置哈希字段的过期时间。

  [了解详情](https://valkey.io/commands/hpexpire/)
+ `HPEXPIREAT`

  将哈希字段的过期时间设置为 Unix 毫秒的时间戳。

  [了解详情](https://valkey.io/commands/hpexpireat/)
+ `HPERSIST`

  从哈希字段中移除过期时间。

  [了解详情](https://valkey.io/commands/hpersist/)
+ `HTTL`

  返回哈希字段的剩余存活时间（以秒为单位）。

  [了解详情](https://valkey.io/commands/httl/)
+ `HPTTL`

  返回哈希字段的剩余存活时间（以毫秒为单位）。

  [了解详情](https://valkey.io/commands/hpttl/)
+ `HEXPIRETIME`

  以 Unix 时间戳形式返回哈希字段的过期时间。

  [了解详情](https://valkey.io/commands/hexpiretime/)
+ `HPEXPIRETIME`

  以 Unix 毫秒时间戳形式返回哈希字段的过期时间。

  [了解详情](https://valkey.io/commands/hpexpiretime/)

**HyperLogLog 命令**
+ `PFADD`

  向 HyperLogLog 密钥添加元素。创建键（如果它不存在）。

  [了解详情](https://valkey.io/commands/pfadd/)
+ `PFCOUNT`

  返回键所观察到的集合的近似 HyperLogLog 基数。

  [了解详情](https://valkey.io/commands/pfcount/)
+ `PFMERGE`

  将一个或多个 HyperLogLog 值合并为一个键。

  [了解详情](https://valkey.io/commands/pfmerge/)

**列出命令**
+ `BLMOVE`

  从列表中弹出一个元素，将其推送到另一个列表并返回。否则将阻止，直到元素可用。如果最后一个元素已移除，则删除列表。

  [了解详情](https://valkey.io/commands/blmove/)
+ `BLMPOP`

  从多个列表之一弹出第一个元素。否则将阻止，直到元素可用。如果最后一个元素已弹出，则删除列表。

  [了解详情](https://valkey.io/commands/blmpop/)
+ `BLPOP`

  删除并返回列表中的第一个元素。否则将阻止，直到元素可用。如果最后一个元素已弹出，则删除列表。

  [了解详情](https://valkey.io/commands/blpop/)
+ `BRPOP`

  删除并返回列表中的最后一个元素。否则将阻止，直到元素可用。如果最后一个元素已弹出，则删除列表。

  [了解详情](https://valkey.io/commands/brpop/)
+ `BRPOPLPUSH`

  从列表中弹出一个元素，将其推送到另一个列表并返回。否则将阻止，直到元素可用。如果最后一个元素已弹出，则删除列表。

  [了解详情](https://valkey.io/commands/brpoplpush/)
+ `LINDEX`

  从列表中按元素索引返回该元素。

  [了解详情](https://valkey.io/commands/lindex/)
+ `LINSERT`

  在列表中的另一个元素之前或之后插入一个元素。

  [了解详情](https://valkey.io/commands/linsert/)
+ `LLEN`

  返回列表的长度。

  [了解详情](https://valkey.io/commands/llen/)
+ `LMOVE`

  从一个列表中弹出一个元素并将其推送到另一个列表后，返回该元素。如果最后一个元素已移除，则删除列表。

  [了解详情](https://valkey.io/commands/lmove/)
+ `LMPOP`

  删除列表中的多个元素后，返回这些元素。如果最后一个元素已弹出，则删除列表。

  [了解详情](https://valkey.io/commands/lmpop/)
+ `LPOP`

  删除列表中的第一个元素之后返回该元素。如果最后一个元素已弹出，则删除列表。

  [了解详情](https://valkey.io/commands/lpop/)
+ `LPOS`

  返回列表中匹配元素的索引。

  [了解详情](https://valkey.io/commands/lpos/)
+ `LPUSH`

  在列表前面追加一个或多个元素。创建键（如果它不存在）。

  [了解详情](https://valkey.io/commands/lpush/)
+ `LPUSHX`

  仅当列表存在时，在列表前面追加一个或多个元素。

  [了解详情](https://valkey.io/commands/lpushx/)
+ `LRANGE`

  返回列表中元素的范围。

  [了解详情](https://valkey.io/commands/lrange/)
+ `LREM`

  从列表中删除元素。如果最后一个元素已删除，则删除列表。

  [了解详情](https://valkey.io/commands/lrem/)
+ `LSET`

  在列表中按元素索引设置元素的值。

  [了解详情](https://valkey.io/commands/lset/)
+ `LTRIM`

  从列表的两端删除元素。如果所有元素都已去除，则删除该列表。

  [了解详情](https://valkey.io/commands/ltrim/)
+ `RPOP`

  返回并删除列表中的最后一个元素。如果最后一个元素已弹出，则删除列表。

  [了解详情](https://valkey.io/commands/rpop/)
+ `RPOPLPUSH`

  在删除列表的最后一个元素并将其推送到另一个列表后，返回该元素。如果最后一个元素已弹出，则删除列表。

  [了解详情](https://valkey.io/commands/rpoplpush/)
+ `RPUSH`

  在列表中附加一个或多个元素。创建键（如果它不存在）。

  [了解详情](https://valkey.io/commands/rpush/)
+ `RPUSHX`

  仅当列表存在时将元素附加到列表中。

  [了解详情](https://valkey.io/commands/rpushx/)

**Pub/Sub 命令**

**注意**  
PUBSUB 命令在内部使用分片 PUBSUB，因此频道名称会混合。
+ `PUBLISH`

  将消息发布到频道。

  [了解详情](https://valkey.io/commands/publish/)
+ `PUBSUB CHANNELS`

  返回活跃频道。

  [了解详情](https://valkey.io/commands/pubsub-channels/)
+ `PUBSUB NUMSUB`

  返回频道的订阅用户数量。

  [了解详情](https://valkey.io/commands/pubsub-numsub/)
+ `PUBSUB SHARDCHANNELS`

  返回活跃的分片频道。

  [了解详情](https://valkey.io/commands/pubsub-shardchannels/)
+ `PUBSUB SHARDNUMSUB`

  返回分片频道的订阅用户数量。

  [了解详情](https://valkey.io/commands/pubsub-shardnumsub/)
+ `SPUBLISH`

  向分片频道发布消息

  [了解详情](https://valkey.io/commands/spublish/)
+ `SSUBSCRIBE`

  侦听发布到分片频道的消息。

  [了解详情](https://valkey.io/commands/ssubscribe/)
+ `SUBSCRIBE`

  侦听发布到频道的消息。

  [了解详情](https://valkey.io/commands/subscribe/)
+ `SUNSUBSCRIBE`

  停止侦听发布到分片频道的消息。

  [了解详情](https://valkey.io/commands/sunsubscribe/)
+ `UNSUBSCRIBE`

  停止侦听发布到频道的消息。

  [了解详情](https://valkey.io/commands/unsubscribe/)

**脚本命令**
+ `EVAL`

  执行服务器端 Lua 脚本。

  [了解详情](https://valkey.io/commands/eval/)
+ `EVAL_RO`

  执行只读服务器端 Lua 脚本。

  [了解详情](https://valkey.io/commands/eval_ro/)
+ `EVALSHA`

  按 SHA1 摘要执行服务器端 Lua 脚本。

  [了解详情](https://valkey.io/commands/evalsha/)
+ `EVALSHA_RO`

  按 SHA1 摘要执行只读服务器端 Lua 脚本。

  [了解详情](https://valkey.io/commands/evalsha_ro/)
+ `SCRIPT EXISTS`

  确定脚本缓存中是否存在服务器端 Lua 脚本。

  [了解详情](https://valkey.io/commands/script-exists/)
+ `SCRIPT FLUSH`

  目前，无操作脚本缓存由该服务管理。

  [了解详情](https://valkey.io/commands/script-flush/)
+ `SCRIPT LOAD`

  将服务器端 Lua 脚本加载到脚本缓存中。

  [了解详情](https://valkey.io/commands/script-load/)

**服务器管理命令**

**注意**  
在 Valkey 和 Redis OSS 中使用基于节点的 ElastiCache 集群时，客户端必须向每个主集群发送 flush 命令以刷新所有密钥。 ElastiCache 适用于 Valkey 和 Redis OSS 的无服务器工作原理不同，因为它抽象了底层的集群拓扑。结果是，在 ElastiCache Serverless 中`FLUSHDB`，`FLUSHALL`命令将始终刷新集群中的所有密钥。因此，flush 命令不能包含在无服务器事务中。
+ `ACL CAT`

  列出 ACL 类别或类别内的命令。

  [了解详情](https://valkey.io/commands/acl-cat/)
+ `ACL GENPASS`

  生成可用于识别 ACL 用户的伪随机安全密码。

  [了解详情](https://valkey.io/commands/acl-genpass/)
+ `ACL GETUSER`

  列出用户的 ACL 规则。

  [了解详情](https://valkey.io/commands/acl-getuser/)
+ `ACL LIST`

  以 ACL 文件格式转储有效规则。

  [了解详情](https://valkey.io/commands/acl-list/)
+ `ACL USERS`

  列出所有 ACL 用户。

  [了解详情](https://valkey.io/commands/acl-users/)
+ `ACL WHOAMI`

  返回当前连接的经过身份验证的用户名。

  [了解详情](https://valkey.io/commands/acl-whoami/)
+ `DBSIZE`

  返回当前所选数据库中的键数量。不保证此操作在所有槽中都是原子形式的。

  [了解详情](https://valkey.io/commands/dbsize/)
+ `COMMAND`

  返回有关所有命令的详细信息。

  [了解详情](https://valkey.io/commands/command/)
+ `COMMAND COUNT`

  返回命令的计数。

  [了解详情](https://valkey.io/commands/command-count/)
+ `COMMAND DOCS`

  返回有关一个、多个或所有命令的已记录信息。

  [了解详情](https://valkey.io/commands/command-docs/)
+ `COMMAND GETKEYS`

  从任意命令中提取键名称。

  [了解详情](https://valkey.io/commands/command-getkeys/)
+ `COMMAND GETKEYSANDFLAGS`

  提取任意命令的键名称和访问标志。

  [了解详情](https://valkey.io/commands/command-getkeysandflags/)
+ `COMMAND INFO`

  返回有关一个、多个或所有命令的信息。

  [了解详情](https://valkey.io/commands/command-info/)
+ `COMMAND LIST`

  返回命令名称的列表。

  [了解详情](https://valkey.io/commands/command-list/)
+ `COMMANDLOG`

  命令日志命令的容器。

  [了解详情](https://valkey.io/commands/commandlog/)
+ `COMMANDLOG GET`

  返回指定命令日志的条目。

  [了解详情](https://valkey.io/commands/commandlog-get/)
+ `COMMANDLOG HELP`

  显示有关不同子命令的有用文本。

  [了解详情](https://valkey.io/commands/commandlog-help/)
+ `COMMANDLOG LEN`

  返回指定类型的命令日志的条目数。

  [了解详情](https://valkey.io/commands/commandlog-len/)
+ `COMMANDLOG RESET`

  清除指定类型的命令日志中的所有条目。

  [了解详情](https://valkey.io/commands/commandlog-reset/)
+ `FLUSHALL`

  从所有数据库中删除所有键。不保证此操作在所有槽中都是原子形式的。

  [了解详情](https://valkey.io/commands/flushall/)
+ `FLUSHDB`

  从当前数据库中删除所有键。不保证此操作在所有槽中都是原子形式的。

  [了解详情](https://valkey.io/commands/flushdb/)
+ `INFO`

  返回有关服务器的信息和统计信息。

  [了解详情](https://valkey.io/commands/info/)
+ `LOLWUT`

  显示 Valkey 或 Redis OSS 版本和对应的计算机图像。

  [了解详情](https://valkey.io/commands/lolwut/)
+ `ROLE`

  返回复制角色。

  [了解详情](https://valkey.io/commands/role/)
+ `TIME`

  返回服务器时间。

  [了解详情](https://valkey.io/commands/time/)

**集命令**
+ `SADD`

  将一个或多个成员添加到集中。创建键（如果它不存在）。

  [了解详情](https://valkey.io/commands/sadd/)
+ `SCARD`

  返回集中的成员数。

  [了解详情](https://valkey.io/commands/scard/)
+ `SDIFF`

  返回多个集的差值。

  [了解详情](https://valkey.io/commands/sdiff/)
+ `SDIFFSTORE`

  将多个集的差值存储在一个键中。

  [了解详情](https://valkey.io/commands/sdiffstore/)
+ `SINTER`

  返回多个集的交集。

  [了解详情](https://valkey.io/commands/sinter/)
+ `SINTERCARD`

  返回多个集的交集的成员数。

  [了解详情](https://valkey.io/commands/sintercard/)
+ `SINTERSTORE`

  将多个集的交集存储在一个键中。

  [了解详情](https://valkey.io/commands/sinterstore/)
+ `SISMEMBER`

  确定成员是否属于一个集。

  [了解详情](https://valkey.io/commands/sismember/)
+ `SMEMBERS`

  返回集的所有成员。

  [了解详情](https://valkey.io/commands/smembers/)
+ `SMISMEMBER`

  确定多个成员是否属于一个集。

  [了解详情](https://valkey.io/commands/smismember/)
+ `SMOVE`

  将成员从一个集移动到另一个集。

  [了解详情](https://valkey.io/commands/smove/)
+ `SPOP`

  删除集中的一个或多个随机成员后，返回这些成员。如果最后一个成员已弹出，则删除集。

  [了解详情](https://valkey.io/commands/spop/)
+ `SRANDMEMBER`

  从集中获取一个或多个随机成员

  [了解详情](https://valkey.io/commands/srandmember/)
+ `SREM`

  从集中删除一个或多个成员。如果最后一个成员已删除，则删除集。

  [了解详情](https://valkey.io/commands/srem/)
+ `SSCAN`

  遍历集的成员。

  [了解详情](https://valkey.io/commands/sscan/)
+ `SUNION`

  返回多个集的并集。

  [了解详情](https://valkey.io/commands/sunion/)
+ `SUNIONSTORE`

  将多个集的并集存储在一个密钥中。

  [了解详情](https://valkey.io/commands/sunionstore/)

**排序集命令**
+ `BZMPOP`

  从一个或多个排序集中按分数移除并返回成员。否则将阻止，直到成员可用。如果最后一个元素已弹出，则删除排序集。

  [了解详情](https://valkey.io/commands/bzmpop/)
+ `BZPOPMAX`

  从一个或多个排序集中移除并返回分数最高的成员。否则将阻止，直到成员可用。如果最后一个元素已弹出，则删除排序集。

  [了解详情](https://valkey.io/commands/bzpopmax/)
+ `BZPOPMIN`

  从一个或多个排序集中移除并返回分数最低的成员。否则将阻止，直到成员可用。如果最后一个元素已弹出，则删除排序集。

  [了解详情](https://valkey.io/commands/bzpopmin/)
+ `ZADD`

  将一个或多个成员添加到排序集中，或更新其分数。创建键（如果它不存在）。

  [了解详情](https://valkey.io/commands/zadd/)
+ `ZCARD`

  返回排序集中的成员数。

  [了解详情](https://valkey.io/commands/zcard/)
+ `ZCOUNT`

  返回排序集中分数在某个范围内的成员数。

  [了解详情](https://valkey.io/commands/zcount/)
+ `ZDIFF`

  返回多个排序集的差值。

  [了解详情](https://valkey.io/commands/zdiff/)
+ `ZDIFFSTORE`

  将多个排序集的差值存储在一个键中。

  [了解详情](https://valkey.io/commands/zdiffstore/)
+ `ZINCRBY`

  递增排序集中成员的分数。

  [了解详情](https://valkey.io/commands/zincrby/)
+ `ZINTER`

  返回多个排序集的交集。

  [了解详情](https://valkey.io/commands/zinter/)
+ `ZINTERCARD`

  返回多个排序集的交集的成员数。

  [了解详情](https://valkey.io/commands/zintercard/)
+ `ZINTERSTORE`

  将多个排序集的交集存储在一个键中。

  [了解详情](https://valkey.io/commands/zinterstore/)
+ `ZLEXCOUNT`

  返回排序集中某个字母表范围内的成员数。

  [了解详情](https://valkey.io/commands/zlexcount/)
+ `ZMPOP`

  删除一个或多个排序集中分数最高或最低的成员后，返回这些成员。如果最后一个元素已弹出，则删除排序集。

  [了解详情](https://valkey.io/commands/zmpop/)
+ `ZMSCORE`

  返回排序集中一个或多个成员的分数。

  [了解详情](https://valkey.io/commands/zmscore/)
+ `ZPOPMAX`

  删除排序集中分数最高的成员后，返回这些成员。如果最后一个元素已弹出，则删除排序集。

  [了解详情](https://valkey.io/commands/zpopmax/)
+ `ZPOPMIN`

  删除排序集中分数最低的成员后，返回这些成员。如果最后一个元素已弹出，则删除排序集。

  [了解详情](https://valkey.io/commands/zpopmin/)
+ `ZRANDMEMBER`

  返回排序集中的一个或多个随机成员。

  [了解详情](https://valkey.io/commands/zrandmember/)
+ `ZRANGE`

  返回排序集中某个索引范围内的成员。

  [了解详情](https://valkey.io/commands/zrange/)
+ `ZRANGEBYLEX`

  返回排序集中某个字母表范围内的成员。

  [了解详情](https://valkey.io/commands/zrangebylex/)
+ `ZRANGEBYSCORE`

  返回排序集中某个分数范围内的成员。

  [了解详情](https://valkey.io/commands/zrangebyscore/)
+ `ZRANGESTORE`

  将排序集中的一系列成员存储在一个键中。

  [了解详情](https://valkey.io/commands/zrangestore/)
+ `ZRANK`

  返回排序集中按分数升序排序的成员的索引。

  [了解详情](https://valkey.io/commands/zrank/)
+ `ZREM`

  从排序集中删除一个或多个成员。如果所有成员已删除，则删除排序集。

  [了解详情](https://valkey.io/commands/zrem/)
+ `ZREMRANGEBYLEX`

  删除排序集中某个字母表范围内的成员。如果所有成员已删除，则删除排序集。

  [了解详情](https://valkey.io/commands/zremrangebylex/)
+ `ZREMRANGEBYRANK`

  删除排序集中某个索引范围内的成员。如果所有成员已删除，则删除排序集。

  [了解详情](https://valkey.io/commands/zremrangebyrank/)
+ `ZREMRANGEBYSCORE`

  删除排序集中某个分数范围内的成员。如果所有成员已删除，则删除排序集。

  [了解详情](https://valkey.io/commands/zremrangebyscore/)
+ `ZREVRANGE`

  以相反的顺序返回某个索引范围内排序集中的成员。

  [了解详情](https://valkey.io/commands/zrevrange/)
+ `ZREVRANGEBYLEX`

  以相反的顺序返回排序集中某个字母表范围内的成员。

  [了解详情](https://valkey.io/commands/zrevrangebylex/)
+ `ZREVRANGEBYSCORE`

  以相反的顺序返回排序集中某个分数范围内的成员。

  [了解详情](https://valkey.io/commands/zrevrangebyscore/)
+ `ZREVRANK`

  按分数降序排序，返回排序集中某个成员的索引。

  [了解详情](https://valkey.io/commands/zrevrank/)
+ `ZSCAN`

  遍历排序集的成员和分数。

  [了解详情](https://valkey.io/commands/zscan/)
+ `ZSCORE`

  返回排序集中某个成员的分数。

  [了解详情](https://valkey.io/commands/zscore/)
+ `ZUNION`

  返回多个排序集的并集。

  [了解详情](https://valkey.io/commands/zunion/)
+ `ZUNIONSTORE`

  将多个排序集的并集存储在一个键中。

  [了解详情](https://valkey.io/commands/zunionstore/)

**流命令**
+ `XACK`

  返回流的使用者组成员已成功确认的消息数量。

  [了解详情](https://valkey.io/commands/xack/)
+ `XADD`

  在流中追加一条新消息。创建键（如果它不存在）。

  [了解详情](https://valkey.io/commands/xadd/)
+ `XAUTOCLAIM`

  更改或获取使用者组中某条消息的所有权，就像消息是以使用者组成员的身份传递一样。

  [了解详情](https://valkey.io/commands/xautoclaim/)
+ `XCLAIM`

  更改或获取使用者组中某条消息的所有权，就像消息是传递给使用者组成员一样。

  [了解详情](https://valkey.io/commands/xclaim/)
+ `XDEL`

  从流中删除消息后，返回删除的消息数。

  [了解详情](https://valkey.io/commands/xdel/)
+ `XGROUP CREATE`

  创建使用者组。

  [了解详情](https://valkey.io/commands/xgroup-create/)
+ `XGROUP CREATECONSUMER`

  在使用者组中创建使用者。

  [了解详情](https://valkey.io/commands/xgroup-createconsumer/)
+ `XGROUP DELCONSUMER`

  从使用者组中删除使用者。

  [了解详情](https://valkey.io/commands/xgroup-delconsumer/)
+ `XGROUP DESTROY`

  销毁使用者组。

  [了解详情](https://valkey.io/commands/xgroup-destroy/)
+ `XGROUP SETID`

  设置使用者组的上次传输 ID。

  [了解详情](https://valkey.io/commands/xgroup-setid/)
+ `XINFO CONSUMERS`

  返回使用者组中的使用者列表。

  [了解详情](https://valkey.io/commands/xinfo-consumers/)
+ `XINFO GROUPS`

  返回流的使用者组列表。

  [了解详情](https://valkey.io/commands/xinfo-groups/)
+ `XINFO STREAM`

  返回有关流的信息。

  [了解详情](https://valkey.io/commands/xinfo-stream/)
+ `XLEN`

  返回流中的消息数。

  [了解详情](https://valkey.io/commands/xlen/)
+ `XPENDING`

  返回流使用者组的待处理条目列表中的信息和条目。

  [了解详情](https://valkey.io/commands/xpending/)
+ `XRANGE`

  返回流中某个 ID 范围内的消息。

  [了解详情](https://valkey.io/commands/xrange/)
+ `XREAD`

  返回多个流中其 ID 大于所请求 ID 的消息。否则将阻止，直到消息可用。

  [了解详情](https://valkey.io/commands/xread/)
+ `XREADGROUP`

  为组中的某个使用者返回流中的新消息或历史消息。否则将阻止，直到消息可用。

  [了解详情](https://valkey.io/commands/xreadgroup/)
+ `XREVRANGE`

  以相反的顺序返回流中某个 ID 范围内的消息。

  [了解详情](https://valkey.io/commands/xrevrange/)
+ `XTRIM`

  从流的开头删除消息。

  [了解详情](https://valkey.io/commands/xtrim/)

**字符串命令**
+ `APPEND`

  在键值后面附加一个字符串。创建键（如果它不存在）。

  [了解详情](https://valkey.io/commands/append/)
+ `DECR`

  将键的整数值减去 1。如果该键不存在，则使用 0 作为初始值。

  [了解详情](https://valkey.io/commands/decr/)
+ `DECRBY`

  从键的整数值减去一个数字。如果该键不存在，则使用 0 作为初始值。

  [了解详情](https://valkey.io/commands/decrby/)
+ `GET`

  返回键的字符串值。

  [了解详情](https://valkey.io/commands/get/)
+ `GETDEL`

  删除键后，返回键的字符串值。

  [了解详情](https://valkey.io/commands/getdel/)
+ `GETEX`

  在设置键的过期时间后，返回其字符串值。

  [了解详情](https://valkey.io/commands/getex/)
+ `GETRANGE`

  返回存储在键中的字符串的子字符串。

  [了解详情](https://valkey.io/commands/getrange/)
+ `GETSET`

  将键设置为新值后，返回键的上一个字符串值。

  [了解详情](https://valkey.io/commands/getset/)
+ `INCR`

  将键的整数值增加 1。如果该键不存在，则使用 0 作为初始值。

  [了解详情](https://valkey.io/commands/incr/)
+ `INCRBY`

  将键的整数值增加一个数字。如果该键不存在，则使用 0 作为初始值。

  [了解详情](https://valkey.io/commands/incrby/)
+ `INCRBYFLOAT`

  将键的浮点值增加一个数字。如果该键不存在，则使用 0 作为初始值。

  [了解详情](https://valkey.io/commands/incrbyfloat/)
+ `LCS`

  查找最长的公共子字符串。

  [了解详情](https://valkey.io/commands/lcs/)
+ `MGET`

  以原子方式返回一个或多个键的字符串值。

  [了解详情](https://valkey.io/commands/mget/)
+ `MSET`

  以原子方式创建或修改一个或多个键的字符串值。

  [了解详情](https://valkey.io/commands/mset/)
+ `MSETNX`

  仅当所有键不存在时，以原子方式修改一个或多个键的字符串值。

  [了解详情](https://valkey.io/commands/msetnx/)
+ `PSETEX`

  设置键的字符串值和过期时间，以毫秒为单位。如果键不存在，则创建它。

  [了解详情](https://valkey.io/commands/psetex/)
+ `SET`

  设置键的字符串值，忽略其类型。如果键不存在，则创建它。

  [了解详情](https://valkey.io/commands/set/)
+ `SETEX`

  设置键的字符串值和过期时间。创建键（如果它不存在）。

  [了解详情](https://valkey.io/commands/setex/)
+ `SETNX`

  仅在某个键不存在时才设置该键的字符串值。

  [了解详情](https://valkey.io/commands/setnx/)
+ `SETRANGE`

  按偏移量用字符串值的一部分覆盖另一个部分。创建键（如果它不存在）。

  [了解详情](https://valkey.io/commands/setrange/)
+ `STRLEN`

  返回字符串值的长度。

  [了解详情](https://valkey.io/commands/strlen/)
+ `SUBSTR`

  返回字符串值中的子字符串。

  [了解详情](https://valkey.io/commands/substr/)

**事务命令**
+ `DISCARD`

  丢弃某个事务。

  [了解详情](https://valkey.io/commands/discard/)
+ `EXEC`

  执行某个事务中的所有命令。

  [了解详情](https://valkey.io/commands/exec/)
+ `MULTI`

  开始事务。

  [了解详情](https://valkey.io/commands/multi/)

## 搜索命令
<a name="SupportedCommandsSearch"></a>

**搜索命令**

Valkey ElastiCache 支持以下搜索命令。
+ `FT.CREATE`

  创建索引并启动该索引的回填。

  [了解详情](https://valkey.io/commands/ft.create/)
+ `FT.SEARCH`

  使用提供的查询表达式查找索引中的键。

  [了解详情](https://valkey.io/commands/ft.search/)
+ `FT.AGGREGATE`

  对索引运行聚合管道。

  [了解详情](https://valkey.io/commands/ft.aggregate/)
+ `FT.DROPINDEX`

  删除索引。

  [了解详情](https://valkey.io/commands/ft.dropindex/)
+ `FT.INFO`

  返回有关给定索引的信息。

  [了解详情](https://valkey.io/commands/ft.info/)
+ `FT._LIST`

  返回所有现有索引的列表。

  [了解详情](https://valkey.io/commands/ft._list/)

## 受限的 Valkey 和 Redis OSS 命令
<a name="RestrictedCommandsRedis"></a>

为了提供托管服务体验， ElastiCache 限制访问某些需要高级权限的特定于缓存引擎的命令。对于运行 Redis OSS 的缓存，以下命令不可用：
+ `acl setuser`
+ `acl load`
+ `acl save`
+ `acl deluser`
+ `bgrewriteaof`
+ `bgsave`
+ `cluster addslot`
+ `cluster addslotsrange`
+ `cluster bumpepoch`
+ `cluster delslot`
+ `cluster delslotsrange `
+ `cluster failover `
+ `cluster flushslots `
+ `cluster forget `
+ `cluster links`
+ `cluster meet`
+ `cluster setslot`
+ `config`
+ `debug`
+ `migrate`
+ `psync`
+ `replicaof`
+ `save`
+ `slaveof`
+ `shutdown`
+ `sync`

此外，以下命令不可用于无服务器缓存：
+ `acl log`
+ `client caching`
+ `client getredir`
+ `client id`
+ `client info`
+ `client kill`
+ `client list`
+ `client no-evict`
+ `client pause`
+ `client tracking`
+ `client trackinginfo`
+ `client unblock`
+ `client unpause`
+ `cluster count-failure-reports`
+ `commandlog`
+ `commandlog get`
+ `commandlog help`
+ `commandlog len`
+ `commandlog reset`
+ `fcall`
+ `fcall_ro`
+ `function`
+ `function delete`
+ `function dump`
+ `function flush`
+ `function help`
+ `function kill`
+ `function list`
+ `function load`
+ `function restore`
+ `function stats`
+ `keys`
+ `lastsave`
+ `latency`
+ `latency doctor`
+ `latency graph`
+ `latency help`
+ `latency histogram`
+ `latency history`
+ `latency latest`
+ `latency reset`
+ `memory`
+ `memory doctor`
+ `memory help`
+ `memory malloc-stats`
+ `memory purge`
+ `memory stats`
+ `memory usage`
+ `monitor`
+ `move`
+ `object`
+ `object encoding`
+ `object freq`
+ `object help`
+ `object idletime`
+ `object refcount`
+ `pfdebug`
+ `pfselftest`
+ `psubscribe`
+ `pubsub numpat`
+ `punsubscribe`
+ `script kill`
+ `slowlog`
+ `slowlog get`
+ `slowlog help`
+ `slowlog len`
+ `slowlog reset`
+ `swapdb`
+ `wait`

## 支持的 Memcached 命令
<a name="SupportedCommandsMem"></a>

ElastiCache Serverless for Memcached 支持开源 memcached 1.6 中的所有内存缓存[命令](https://github.com/memcached/memcached/wiki/Commands)，但以下命令除外：
+ 客户端连接需要 TLS，因此不支持 UDP 协议。
+ 不支持二进制协议，因为在 memcached 1.6 中已正式[弃用](https://github.com/memcached/memcached/wiki/ReleaseNotes160)该协议。
+ `GET/GETS` 命令限制为 16KB，以避免可能通过提取大量键来对服务器进行 DoS 攻击。
+ 延迟的 `flush_all` 命令将被拒绝并返回 `CLIENT_ERROR`。
+ 配置引擎的命令，或者显示有关引擎状态或日志的内部信息的命令均不受支持，例如：
  + 对于 `STATS` 命令，仅支持 `stats` 和 `stats reset`。其他变体将返回 `ERROR`
  + `lru / lru_crawler`：修改 LRU 和 LRU 爬网程序设置
  + `watch`：监视 memcached 服务器日志
  + `verbosity`：配置服务器日志级别
  + `me` - meta debug (me) 命令不受支持