本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
支持和限制 Valkey、Memcached 和 Redis OSS 命令
支持的 Valkey 和 Redis OSS 命令
支持的 Valkey 和 Redis OSS 命令
无服务器缓存支持以下 Valkey 和 Redis OSS 命令。除了这些命令外,还支持这些 支持的 Valkey 和 Redis OSS 命令 命令。
有关布隆过滤器命令的信息,请参见 布隆过滤器命令
位图命令
集群管理命令
-
CLUSTER COUNTKEYSINSLOT返回哈希槽中的键数。
-
CLUSTER GETKEYSINSLOT返回哈希槽中的键名称。
-
CLUSTER INFO返回有关节点状态的信息。在无服务器缓存中,返回有关显示给客户端的单个虚拟“分片”的状态。
-
CLUSTER KEYSLOT返回键的哈希槽。
-
CLUSTER MYID返回节点的 ID。在无服务器缓存中,返回有关显示给客户端的单个虚拟“分片”的状态。
-
CLUSTER NODES返回节点的集群配置。在无服务器缓存中,返回有关显示给客户端的单个虚拟“分片”的状态。
-
CLUSTER REPLICAS列出主节点的副本节点。在无服务器缓存中,返回有关显示给客户端的单个虚拟“分片”的状态。
-
CLUSTER SHARDS返回集群槽与分片的映射。在无服务器缓存中,返回有关显示给客户端的单个虚拟“分片”的状态。
-
CLUSTER SLOTS返回集群槽与节点的映射。在无服务器缓存中,返回有关显示给客户端的单个虚拟“分片”的状态。
-
CLUSTER SLOT-STATS允许跟踪每个插槽的密钥计数、CPU 利用率、网络输入字节数和网络字节流出量指标。
-
READONLY为与 Valkey 和 Redis OSS 集群副本节点的连接启用只读查询。
-
READWRITE为与 Valkey 或 Redis OSS 集群副本节点的连接启用只写查询。
-
SCRIPT SHOW返回脚本缓存中脚本的原始源代码。
连接管理命令
通用命令
-
COPY将键的值复制到新键中。
-
DEL删除一个或多个键。
-
DUMP返回存储在某个键上的值的序列化表示形式。
-
EXISTS确定是否存在一个或多个键。
-
EXPIRE以秒为单位设置键的过期时间。
-
EXPIREAT以 Unix 时间戳的格式设置键的过期时间。
-
EXPIRETIME以 Unix 时间戳的格式返回键的过期时间。
-
PERSIST移除键的过期时间。
-
PEXPIRE以毫秒为单位设置键的过期时间。
-
PEXPIREAT以 Unix 毫秒时间戳的格式设置键的过期时间。
-
PEXPIRETIME以 Unix 毫秒时间戳的格式返回键的过期时间。
-
PTTL以毫秒为单位返回键的过期时间。
-
RANDOMKEY从数据库中返回随机键名称。
-
RENAME重命名键并覆盖目标。
-
RENAMENX仅在目标键名称不存在时重命名键。
-
RESTORE根据值的序列化表示形式创建键。
-
SCAN遍历数据库中的键名。
-
SORT对列表、集或排序集中的元素进行排序,可以选择将结果存储起来。
-
SORT_RO返回列表、集或排序集的排序元素。
-
TOUCH返回在更新最后一次访问键的时间后,指定键中现有键的数量。
-
TTL以秒为单位返回键的过期时间。
-
TYPE确定存储在键中的值的类型。
-
UNLINK异步删除一个或多个键。
地理空间命令
-
GEOADD将一个或多个成员添加到地理空间索引。如果键不存在,则创建它。
-
GEODIST返回地理空间索引的两个成员之间的距离。
-
GEOHASH以地理哈希字符串的格式返回地理空间索引中的成员。
-
GEOPOS从地理空间索引返回成员的经度和纬度。
-
GEORADIUS查询与坐标相隔一定距离内的成员的地理空间索引,可以选择将结果存储起来。
-
GEORADIUS_RO从地理空间索引中返回与坐标相隔一定距离内的成员。
-
GEORADIUSBYMEMBER查询与某个成员相隔一定距离内的成员的地理空间索引,可以选择将结果存储起来。
-
GEORADIUSBYMEMBER_RO从地理空间索引中返回与成员相隔一定距离内的成员。
-
GEOSEARCH查询方框或圆圈区域内成员的地理空间索引。
-
GEOSEARCHSTORE查询方框或圆圈区域内成员的地理空间索引,可以选择将结果存储起来。
哈希命令
-
HDEL从哈希中删除一个或多个字段及其值。如果没有字段剩余,则删除哈希。
-
HEXISTS确定哈希中是否存在某个字段。
-
HGET返回哈希中某个字段的值。
-
HGETALL返回哈希中的所有字段和值。
-
HINCRBY将哈希中某个字段的整数值增加一个数字。如果该字段不存在,则使用 0 作为初始值。
-
HINCRBYFLOAT将某个字段的浮点值增加一个数字。如果该字段不存在,则使用 0 作为初始值。
-
HKEYS返回哈希中的所有字段。
-
HLEN返回哈希中的字段数。
-
HMGET返回哈希中的所有字段的值。
-
HMSET设置多个字段的值。
-
HRANDFIELD从哈希返回一个或多个随机字段。
-
HSCAN遍历哈希的字段和值。
-
HSET在哈希中创建或修改某个字段的值。
-
HSETNX仅当哈希中不存在某个字段时才设置该字段的值。
-
HSTRLEN返回某个字段的值的长度。
-
HVALS返回哈希中的所有值。
HyperLogLog 命令
列出命令
-
BLMOVE从列表中弹出一个元素,将其推送到另一个列表并返回。否则将阻止,直到元素可用。如果最后一个元素已移除,则删除列表。
-
BLMPOP从多个列表之一弹出第一个元素。否则将阻止,直到元素可用。如果最后一个元素已弹出,则删除列表。
-
BLPOP删除并返回列表中的第一个元素。否则将阻止,直到元素可用。如果最后一个元素已弹出,则删除列表。
-
BRPOP删除并返回列表中的最后一个元素。否则将阻止,直到元素可用。如果最后一个元素已弹出,则删除列表。
-
BRPOPLPUSH从列表中弹出一个元素,将其推送到另一个列表并返回。否则将阻止,直到元素可用。如果最后一个元素已弹出,则删除列表。
-
LINDEX从列表中按元素索引返回该元素。
-
LINSERT在列表中的另一个元素之前或之后插入一个元素。
-
LLEN返回列表的长度。
-
LMOVE从一个列表中弹出一个元素并将其推送到另一个列表后,返回该元素。如果最后一个元素已移除,则删除列表。
-
LMPOP删除列表中的多个元素后,返回这些元素。如果最后一个元素已弹出,则删除列表。
-
LPOP删除列表中的第一个元素之后返回该元素。如果最后一个元素已弹出,则删除列表。
-
LPOS返回列表中匹配元素的索引。
-
LPUSH在列表前面追加一个或多个元素。创建键(如果它不存在)。
-
LPUSHX仅当列表存在时,在列表前面追加一个或多个元素。
-
LRANGE返回列表中元素的范围。
-
LREM从列表中删除元素。如果最后一个元素已删除,则删除列表。
-
LSET在列表中按元素索引设置元素的值。
-
LTRIM从列表的两端删除元素。如果所有元素都已去除,则删除该列表。
-
RPOP返回并删除列表中的最后一个元素。如果最后一个元素已弹出,则删除列表。
-
RPOPLPUSH在删除列表的最后一个元素并将其推送到另一个列表后,返回该元素。如果最后一个元素已弹出,则删除列表。
-
RPUSH在列表中附加一个或多个元素。创建键(如果它不存在)。
-
RPUSHX仅当列表存在时将元素附加到列表中。
Pub/Sub 命令
注意
PUBSUB 命令在内部使用分片 PUBSUB,因此频道名称会混合。
-
PUBLISH将消息发布到频道。
-
PUBSUB CHANNELS返回活跃频道。
-
PUBSUB NUMSUB返回频道的订阅用户数量。
-
PUBSUB SHARDCHANNELS返回活跃的分片频道。
-
PUBSUB SHARDNUMSUB返回分片频道的订阅用户数量。
-
SPUBLISH向分片频道发布消息
-
SSUBSCRIBE侦听发布到分片频道的消息。
-
SUBSCRIBE侦听发布到频道的消息。
-
SUNSUBSCRIBE停止侦听发布到分片频道的消息。
-
UNSUBSCRIBE停止侦听发布到频道的消息。
脚本命令
服务器管理命令
注意
在 Valkey 和 Redis OSS 上使用自己设计的 ElastiCache 集群时,客户端必须向每个主集群发送 flush 命令以刷新所有密钥。 ElastiCache 适用于 Valkey 和 Redis OSS 的无服务器工作原理不同,因为它抽象了底层的集群拓扑。结果是,在 ElastiCache Serverless 中FLUSHDB,FLUSHALL命令将始终刷新集群中的所有密钥。因此,flush 命令不能包含在无服务器事务中。
-
ACL CAT列出 ACL 类别或类别内的命令。
-
ACL GENPASS生成可用于识别 ACL 用户的伪随机安全密码。
-
ACL GETUSER列出用户的 ACL 规则。
-
ACL LIST以 ACL 文件格式转储有效规则。
-
ACL USERS列出所有 ACL 用户。
-
ACL WHOAMI返回当前连接的经过身份验证的用户名。
-
DBSIZE返回当前所选数据库中的键数量。不保证此操作在所有槽中都是原子形式的。
-
COMMAND返回有关所有命令的详细信息。
-
COMMAND COUNT返回命令的计数。
-
COMMAND DOCS返回有关一个、多个或所有命令的已记录信息。
-
COMMAND GETKEYS从任意命令中提取键名称。
-
COMMAND GETKEYSANDFLAGS提取任意命令的键名称和访问标志。
-
COMMAND INFO返回有关一个、多个或所有命令的信息。
-
COMMAND LIST返回命令名称的列表。
-
COMMANDLOG命令日志命令的容器。
-
COMMANDLOG GET返回指定命令日志的条目。
-
COMMANDLOG HELP显示有关不同子命令的有用文本。
-
COMMANDLOG LEN返回指定类型的命令日志中的条目数。
-
COMMANDLOG RESET清除指定类型的命令日志中的所有条目。
-
FLUSHALL从所有数据库中删除所有键。不保证此操作在所有槽中都是原子形式的。
-
FLUSHDB从当前数据库中删除所有键。不保证此操作在所有槽中都是原子形式的。
-
INFO返回有关服务器的信息和统计信息。
-
LOLWUT显示 Valkey 或 Redis OSS 版本和对应的计算机图像。
-
ROLE返回复制角色。
-
TIME返回服务器时间。
集命令
-
SADD将一个或多个成员添加到集中。创建键(如果它不存在)。
-
SCARD返回集中的成员数。
-
SDIFF返回多个集的差值。
-
SDIFFSTORE将多个集的差值存储在一个键中。
-
SINTER返回多个集的交集。
-
SINTERCARD返回多个集的交集的成员数。
-
SINTERSTORE将多个集的交集存储在一个键中。
-
SISMEMBER确定成员是否属于一个集。
-
SMEMBERS返回集的所有成员。
-
SMISMEMBER确定多个成员是否属于一个集。
-
SMOVE将成员从一个集移动到另一个集。
-
SPOP删除集中的一个或多个随机成员后,返回这些成员。如果最后一个成员已弹出,则删除集。
-
SRANDMEMBER从集中获取一个或多个随机成员
-
SREM从集中删除一个或多个成员。如果最后一个成员已删除,则删除集。
-
SSCAN遍历集的成员。
-
SUNION返回多个集的并集。
-
SUNIONSTORE将多个集的并集存储在一个密钥中。
排序集命令
-
BZMPOP从一个或多个排序集中按分数移除并返回成员。否则将阻止,直到成员可用。如果最后一个元素已弹出,则删除排序集。
-
BZPOPMAX从一个或多个排序集中移除并返回分数最高的成员。否则将阻止,直到成员可用。如果最后一个元素已弹出,则删除排序集。
-
BZPOPMIN从一个或多个排序集中移除并返回分数最低的成员。否则将阻止,直到成员可用。如果最后一个元素已弹出,则删除排序集。
-
ZADD将一个或多个成员添加到排序集中,或更新其分数。创建键(如果它不存在)。
-
ZCARD返回排序集中的成员数。
-
ZCOUNT返回排序集中分数在某个范围内的成员数。
-
ZDIFF返回多个排序集的差值。
-
ZDIFFSTORE将多个排序集的差值存储在一个键中。
-
ZINCRBY递增排序集中成员的分数。
-
ZINTER返回多个排序集的交集。
-
ZINTERCARD返回多个排序集的交集的成员数。
-
ZINTERSTORE将多个排序集的交集存储在一个键中。
-
ZLEXCOUNT返回排序集中某个字母表范围内的成员数。
-
ZMPOP删除一个或多个排序集中分数最高或最低的成员后,返回这些成员。如果最后一个元素已弹出,则删除排序集。
-
ZMSCORE返回排序集中一个或多个成员的分数。
-
ZPOPMAX删除排序集中分数最高的成员后,返回这些成员。如果最后一个元素已弹出,则删除排序集。
-
ZPOPMIN删除排序集中分数最低的成员后,返回这些成员。如果最后一个元素已弹出,则删除排序集。
-
ZRANDMEMBER返回排序集中的一个或多个随机成员。
-
ZRANGE返回排序集中某个索引范围内的成员。
-
ZRANGEBYLEX返回排序集中某个字母表范围内的成员。
-
ZRANGEBYSCORE返回排序集中某个分数范围内的成员。
-
ZRANGESTORE将排序集中的一系列成员存储在一个键中。
-
ZRANK返回排序集中按分数升序排序的成员的索引。
-
ZREM从排序集中删除一个或多个成员。如果所有成员已删除,则删除排序集。
-
ZREMRANGEBYLEX删除排序集中某个字母表范围内的成员。如果所有成员已删除,则删除排序集。
-
ZREMRANGEBYRANK删除排序集中某个索引范围内的成员。如果所有成员已删除,则删除排序集。
-
ZREMRANGEBYSCORE删除排序集中某个分数范围内的成员。如果所有成员已删除,则删除排序集。
-
ZREVRANGE以相反的顺序返回某个索引范围内排序集中的成员。
-
ZREVRANGEBYLEX以相反的顺序返回排序集中某个字母表范围内的成员。
-
ZREVRANGEBYSCORE以相反的顺序返回排序集中某个分数范围内的成员。
-
ZREVRANK按分数降序排序,返回排序集中某个成员的索引。
-
ZSCAN遍历排序集的成员和分数。
-
ZSCORE返回排序集中某个成员的分数。
-
ZUNION返回多个排序集的并集。
-
ZUNIONSTORE将多个排序集的并集存储在一个键中。
流命令
-
XACK返回流的使用者组成员已成功确认的消息数量。
-
XADD在流中追加一条新消息。创建键(如果它不存在)。
-
XAUTOCLAIM更改或获取使用者组中某条消息的所有权,就像消息是以使用者组成员的身份传递一样。
-
XCLAIM更改或获取使用者组中某条消息的所有权,就像消息是传递给使用者组成员一样。
-
XDEL从流中删除消息后,返回删除的消息数。
-
XGROUP CREATE创建使用者组。
-
XGROUP CREATECONSUMER在使用者组中创建使用者。
-
XGROUP DELCONSUMER从使用者组中删除使用者。
-
XGROUP DESTROY销毁使用者组。
-
XGROUP SETID设置使用者组的上次传输 ID。
-
XINFO CONSUMERS返回使用者组中的使用者列表。
-
XINFO GROUPS返回流的使用者组列表。
-
XINFO STREAM返回有关流的信息。
-
XLEN返回流中的消息数。
-
XPENDING返回流使用者组的待处理条目列表中的信息和条目。
-
XRANGE返回来自一定范围内的数据流的消息 IDs。
-
XREAD从多个流中返回 IDs 大于请求数量的消息。否则将阻止,直到消息可用。
-
XREADGROUP为组中的某个使用者返回流中的新消息或历史消息。否则将阻止,直到消息可用。
-
XREVRANGE以相反的顺序返回范围内的流 IDs 中的消息。
-
XTRIM从流的开头删除消息。
字符串命令
-
APPEND在键值后面附加一个字符串。创建键(如果它不存在)。
-
DECR将键的整数值减去 1。如果该键不存在,则使用 0 作为初始值。
-
DECRBY从键的整数值减去一个数字。如果该键不存在,则使用 0 作为初始值。
-
GET返回键的字符串值。
-
GETDEL删除键后,返回键的字符串值。
-
GETEX在设置键的过期时间后,返回其字符串值。
-
GETRANGE返回存储在键中的字符串的子字符串。
-
GETSET将键设置为新值后,返回键的上一个字符串值。
-
INCR将键的整数值增加 1。如果该键不存在,则使用 0 作为初始值。
-
INCRBY将键的整数值增加一个数字。如果该键不存在,则使用 0 作为初始值。
-
INCRBYFLOAT将键的浮点值增加一个数字。如果该键不存在,则使用 0 作为初始值。
-
LCS查找最长的公共子字符串。
-
MGET以原子方式返回一个或多个键的字符串值。
-
MSET以原子方式创建或修改一个或多个键的字符串值。
-
MSETNX仅当所有键不存在时,以原子方式修改一个或多个键的字符串值。
-
PSETEX设置键的字符串值和过期时间,以毫秒为单位。如果键不存在,则创建它。
-
SET设置键的字符串值,忽略其类型。如果键不存在,则创建它。
-
SETEX设置键的字符串值和过期时间。创建键(如果它不存在)。
-
SETNX仅在某个键不存在时才设置该键的字符串值。
-
SETRANGE按偏移量用字符串值的一部分覆盖另一个部分。创建键(如果它不存在)。
-
STRLEN返回字符串值的长度。
-
SUBSTR返回字符串值中的子字符串。
事务命令
受限的 Valkey 和 Redis OSS 命令
为了提供托管服务体验, ElastiCache 限制访问某些需要高级权限的特定于缓存引擎的命令。对于运行 Redis OSS 的缓存,以下命令不可用:
acl setuseracl loadacl saveacl deluserbgrewriteaofbgsavecluster addslotcluster addslotsrangecluster bumpepochcluster delslotcluster delslotsrangecluster failovercluster flushslotscluster forgetcluster linkscluster meetcluster setslotconfigdebugmigratepsyncreplicaofsaveslaveofshutdownsync
此外,以下命令不可用于无服务器缓存:
acl logclient cachingclient getredirclient idclient infoclient killclient listclient no-evictclient pauseclient trackingclient trackinginfoclient unblockclient unpausecluster count-failure-reportscommandlogcommandlog getcommandlog helpcommandlog lencommandlog resetfcallfcall_rofunctionfunction deletefunction dumpfunction flushfunction helpfunction killfunction listfunction loadfunction restorefunction statskeyslastsavelatencylatency doctorlatency graphlatency helplatency histogramlatency historylatency latestlatency resetmemorymemory doctormemory helpmemory malloc-statsmemory purgememory statsmemory usagemonitormoveobjectobject encodingobject freqobject helpobject idletimeobject refcountpfdebugpfselftestpsubscribepubsub numpatpunsubscribescript killslowlogslowlog getslowlog helpslowlog lenslowlog resetswapdbunwatchwaitwatch
支持的 Memcached 命令
ElastiCache Serverless for Memcached 支持开源 memcached 1.6 中的所有内存缓存命令
客户端连接需要 TLS,因此不支持 UDP 协议。
不支持二进制协议,因为在 memcached 1.6 中已正式弃用
该协议。 GET/GETS命令限制为 16KB,以避免可能通过提取大量键来对服务器进行 DoS 攻击。延迟的
flush_all命令将被拒绝并返回CLIENT_ERROR。配置引擎的命令,或者显示有关引擎状态或日志的内部信息的命令均不受支持,例如:
对于
STATS命令,仅支持stats和stats reset。其他变体将返回ERRORlru / lru_crawler:修改 LRU 和 LRU 爬网程序设置watch:监视 memcached 服务器日志verbosity:配置服务器日志级别me- meta debug (me) 命令不受支持