本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
支援和限制的 Valkey、Memcached 和 Redis OSS 命令
支援的 Valkey 和 Redis OSS 命令
支援的 Valkey 和 Redis OSS 命令
無伺服器快取支援下列 Valkey 和 Redis OSS 命令。除了這些命令之外,還支援這些 支援的 Valkey 和 Redis OSS 命令。
如需 Bloom Filter 命令的詳細資訊,請參閱 Bloom 篩選條件命令
點陣圖命令
叢集管理命令
-
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從地理空間索引傳回成員作為 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停止偵聽發佈至通道的訊息。
指令碼命令
伺服器管理命令
注意
將自行設計的 ElastiCache 叢集用於 Valkey 和 Redis OSS 時,用戶端必須將排清命令傳送至每個主要叢集,以排清所有金鑰。ElastiCache Serverless for Valkey 和 Redis OSS 的運作方式不同,因為它會抽象化基礎叢集拓撲。結果是,在 ElastiCache Serverless 中, FLUSHDB 和 FLUSHALL 命令一律會清除叢集中的所有金鑰。因此,無伺服器交易中不能包含排清命令。
-
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傳回串流中某個 ID 範圍內的訊息。
-
XREAD從多個串流傳回 ID 大於所請求值的訊息。封鎖直到訊息可用為止。
-
XREADGROUP從串流傳回群組中取用者的新訊息和歷史訊息。封鎖直到訊息可用為止。
-
XREVRANGE依反向順序傳回串流中某個 ID 範圍內的訊息。
-
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 中的所有 memcached 命令
用戶端連線需要 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- 不支援中繼偵錯 (me) 命令