Supported and restricted Valkey, Memcached, and Redis OSS commands
Supported Valkey and Redis OSS commands
Supported Valkey and Redis OSS commands
The following Valkey and Redis OSS commands are supported by serverless caches. In addition to these commands, these Supported Valkey and Redis OSS commands are also supported.
Bitmap Commands
-
BITCOUNT
Counts the number of set bits (population counting) in a string.
-
BITFIELD
Performs arbitrary bitfield integer operations on strings.
-
BITFIELD_RO
Performs arbitrary read-only bitfield integer operations on strings.
-
BITOP
Performs bitwise operations on multiple strings, and stores the result.
-
BITPOS
Finds the first set (1) or clear (0) bit in a string.
-
GETBIT
Returns a bit value by offset.
-
SETBIT
Sets or clears the bit at offset of the string value. Creates the key if it doesn't exist.
Cluster Management Commands
-
CLUSTER COUNTKEYSINSLOT
Returns the number of keys in a hash slot.
-
CLUSTER GETKEYSINSLOT
Returns the key names in a hash slot.
-
CLUSTER INFO
Returns information about the state of a node. In a serverless cache, returns state about the single virtual “shard” exposed to the client.
-
CLUSTER KEYSLOT
Returns the hash slot for a key.
-
CLUSTER MYID
Returns the ID of a node. In a serverless cache, returns state about the single virtual “shard” exposed to the client.
-
CLUSTER NODES
Returns the cluster configuration for a node. In a serverless cache, returns state about the single virtual “shard” exposed to the client.
-
CLUSTER REPLICAS
Lists the replica nodes of a master node. In a serverless cache, returns state about the single virtual “shard” exposed to the client.
-
CLUSTER SHARDS
Returns the mapping of cluster slots to shards. In a serverless cache, returns state about the single virtual “shard” exposed to the client.
-
CLUSTER SLOTS
Returns the mapping of cluster slots to nodes. In a serverless cache, returns state about the single virtual “shard” exposed to the client.
-
CLUSTER SLOT-STATS
Allows tracking of per slot metrics for key count, CPU utilization, network bytes in, and network bytes out.
-
READONLY
Enables read-only queries for a connection to a Valkey or Redis OSS Cluster replica node.
-
READWRITE
Enables read-write queries for a connection to a Valkey or Redis OSS Cluster replica node.
-
SCRIPT SHOW
Returns the original source code of a script in the script cache.
Connection Management Commands
-
AUTH
Authenticates the connection.
-
CLIENT GETNAME
Returns the name of the connection.
-
CLIENT REPLY
Instructs the server whether to reply to commands.
-
CLIENT SETNAME
Sets the connection name.
-
ECHO
Returns the given string.
-
HELLO
Handshakes with the Valkey or Redis OSS server.
-
PING
Returns the server's liveliness response.
-
QUIT
Closes the connection.
-
RESET
Resets the connection.
-
SELECT
Changes the selected database.
Generic Commands
-
COPY
Copies the value of a key to a new key.
-
DEL
Deletes one or more keys.
-
DUMP
Returns a serialized representation of the value stored at a key.
-
EXISTS
Determines whether one or more keys exist.
-
EXPIRE
Sets the expiration time of a key in seconds.
-
EXPIREAT
Sets the expiration time of a key to a Unix timestamp.
-
EXPIRETIME
Returns the expiration time of a key as a Unix timestamp.
-
PERSIST
Removes the expiration time of a key.
-
PEXPIRE
Sets the expiration time of a key in milliseconds.
-
PEXPIREAT
Sets the expiration time of a key to a Unix milliseconds timestamp.
-
PEXPIRETIME
Returns the expiration time of a key as a Unix milliseconds timestamp.
-
PTTL
Returns the expiration time in milliseconds of a key.
-
RANDOMKEY
Returns a random key name from the database.
-
RENAME
Renames a key and overwrites the destination.
-
RENAMENX
Renames a key only when the target key name doesn't exist.
-
RESTORE
Creates a key from the serialized representation of a value.
-
SCAN
Iterates over the key names in the database.
-
SORT
Sorts the elements in a list, a set, or a sorted set, optionally storing the result.
-
SORT_RO
Returns the sorted elements of a list, a set, or a sorted set.
-
TOUCH
Returns the number of existing keys out of those specified after updating the time they were last accessed.
-
TTL
Returns the expiration time in seconds of a key.
-
TYPE
Determines the type of value stored at a key.
-
UNLINK
Asynchronously deletes one or more keys.
Geospatial Commands
-
GEOADD
Adds one or more members to a geospatial index. The key is created if it doesn't exist.
-
GEODIST
Returns the distance between two members of a geospatial index.
-
GEOHASH
Returns members from a geospatial index as geohash strings.
-
GEOPOS
Returns the longitude and latitude of members from a geospatial index.
-
GEORADIUS
Queries a geospatial index for members within a distance from a coordinate, optionally stores the result.
-
GEORADIUS_RO
Returns members from a geospatial index that are within a distance from a coordinate.
-
GEORADIUSBYMEMBER
Queries a geospatial index for members within a distance from a member, optionally stores the result.
-
GEORADIUSBYMEMBER_RO
Returns members from a geospatial index that are within a distance from a member.
-
GEOSEARCH
Queries a geospatial index for members inside an area of a box or a circle.
-
GEOSEARCHSTORE
Queries a geospatial index for members inside an area of a box or a circle, optionally stores the result.
Hash Commands
-
HDEL
Deletes one or more fields and their values from a hash. Deletes the hash if no fields remain.
-
HEXISTS
Determines whether a field exists in a hash.
-
HGET
Returns the value of a field in a hash.
-
HGETALL
Returns all fields and values in a hash.
-
HINCRBY
Increments the integer value of a field in a hash by a number. Uses 0 as initial value if the field doesn't exist.
-
HINCRBYFLOAT
Increments the floating point value of a field by a number. Uses 0 as initial value if the field doesn't exist.
-
HKEYS
Returns all fields in a hash.
-
HLEN
Returns the number of fields in a hash.
-
HMGET
Returns the values of all fields in a hash.
-
HMSET
Sets the values of multiple fields.
-
HRANDFIELD
Returns one or more random fields from a hash.
-
HSCAN
Iterates over fields and values of a hash.
-
HSET
Creates or modifies the value of a field in a hash.
-
HSETNX
Sets the value of a field in a hash only when the field doesn't exist.
-
HSTRLEN
Returns the length of the value of a field.
-
HVALS
Returns all values in a hash.
HyperLogLog Commands
-
PFADD
Adds elements to a HyperLogLog key. Creates the key if it doesn't exist.
-
PFCOUNT
Returns the approximated cardinality of the set(s) observed by the HyperLogLog key(s).
-
PFMERGE
Merges one or more HyperLogLog values into a single key.
List Commands
-
BLMOVE
Pops an element from a list, pushes it to another list and returns it. Blocks until an element is available otherwise. Deletes the list if the last element was moved.
-
BLMPOP
Pops the first element from one of multiple lists. Blocks until an element is available otherwise. Deletes the list if the last element was popped.
-
BLPOP
Removes and returns the first element in a list. Blocks until an element is available otherwise. Deletes the list if the last element was popped.
-
BRPOP
Removes and returns the last element in a list. Blocks until an element is available otherwise. Deletes the list if the last element was popped.
-
BRPOPLPUSH
Pops an element from a list, pushes it to another list and returns it. Block until an element is available otherwise. Deletes the list if the last element was popped.
-
LINDEX
Returns an element from a list by its index.
-
LINSERT
Inserts an element before or after another element in a list.
-
LLEN
Returns the length of a list.
-
LMOVE
Returns an element after popping it from one list and pushing it to another. Deletes the list if the last element was moved.
-
LMPOP
Returns multiple elements from a list after removing them. Deletes the list if the last element was popped.
-
LPOP
Returns the first elements in a list after removing it. Deletes the list if the last element was popped.
-
LPOS
Returns the index of matching elements in a list.
-
LPUSH
Prepends one or more elements to a list. Creates the key if it doesn't exist.
-
LPUSHX
Prepends one or more elements to a list only when the list exists.
-
LRANGE
Returns a range of elements from a list.
-
LREM
Removes elements from a list. Deletes the list if the last element was removed.
-
LSET
Sets the value of an element in a list by its index.
-
LTRIM
Removes elements from both ends a list. Deletes the list if all elements were trimmed.
-
RPOP
Returns and removes the last elements of a list. Deletes the list if the last element was popped.
-
RPOPLPUSH
Returns the last element of a list after removing and pushing it to another list. Deletes the list if the last element was popped.
-
RPUSH
Appends one or more elements to a list. Creates the key if it doesn't exist.
-
RPUSHX
Appends an element to a list only when the list exists.
Pub/Sub Commands
Note
PUBSUB commands internally use sharded PUBSUB, so channel names will be mixed.
-
PUBLISH
Posts a message to a channel.
-
PUBSUB CHANNELS
Returns the active channels.
-
PUBSUB NUMSUB
Returns a count of subscribers to channels.
-
PUBSUB SHARDCHANNELS
Returns the active shard channels.
-
PUBSUB SHARDNUMSUB
Returns the count of subscribers of shard channels.
-
SPUBLISH
Post a message to a shard channel
-
SSUBSCRIBE
Listens for messages published to shard channels.
-
SUBSCRIBE
Listens for messages published to channels.
-
SUNSUBSCRIBE
Stops listening to messages posted to shard channels.
-
UNSUBSCRIBE
Stops listening to messages posted to channels.
Scripting Commands
-
EVAL
Executes a server-side Lua script.
-
EVAL_RO
Executes a read-only server-side Lua script.
-
EVALSHA
Executes a server-side Lua script by SHA1 digest.
-
EVALSHA_RO
Executes a read-only server-side Lua script by SHA1 digest.
-
SCRIPT EXISTS
Determines whether server-side Lua scripts exist in the script cache.
-
SCRIPT FLUSH
Currently a no-op, script cache is managed by the service.
-
SCRIPT LOAD
Loads a server-side Lua script to the script cache.
Server Management Commands
Note
When using self-designed ElastiCache clusters for Valkey and Redis OSS, flush commands must be sent to every primary by the client to flush all keys. ElastiCache Serverless for Valkey and Redis OSS works differently, because it abstracts away the underlying cluster topology. The result is that in ElastiCache Serverless, FLUSHDB
and FLUSHALL
commands will always flush all keys across the cluster. For this reason, flush commands cannot be included inside a Serverless transaction.
-
ACL CAT
Lists the ACL categories, or the commands inside a category.
-
ACL GENPASS
Generates a pseudorandom, secure password that can be used to identify ACL users.
-
ACL GETUSER
Lists the ACL rules of a user.
-
ACL LIST
Dumps the effective rules in ACL file format.
-
ACL USERS
Lists all ACL users.
-
ACL WHOAMI
Returns the authenticated username of the current connection.
-
DBSIZE
Return the number of keys in the currently-selected database. This operation is not guaranteed to be atomic across all slots.
-
COMMAND
Returns detailed information about all commands.
-
COMMAND COUNT
Returns a count of commands.
-
COMMAND DOCS
Returns documentary information about one, multiple or all commands.
-
COMMAND GETKEYS
Extracts the key names from an arbitrary command.
-
COMMAND GETKEYSANDFLAGS
Extracts the key names and access flags for an arbitrary command.
-
COMMAND INFO
Returns information about one, multiple or all commands.
-
COMMAND LIST
Returns a list of command names.
-
FLUSHALL
Removes all keys from all databases. This operation is not guaranteed to be atomic across all slots.
-
FLUSHDB
Remove all keys from the current database. This operation is not guaranteed to be atomic across all slots.
-
INFO
Returns information and statistics about the server.
-
LOLWUT
Displays computer art and the Valkey or Redis OSS version.
-
ROLE
Returns the replication role.
-
TIME
Returns the server time.
Set Commands
-
SADD
Adds one or more members to a set. Creates the key if it doesn't exist.
-
SCARDT
Returns the number of members in a set.
-
SDIFF
Returns the difference of multiple sets.
-
SDIFFSTORE
Stores the difference of multiple sets in a key.
-
SINTER
Returns the intersect of multiple sets.
-
SINTERCARD
Returns the number of members of the intersect of multiple sets.
-
SINTERSTORE
Stores the intersect of multiple sets in a key.
-
SISMEMBER
Determines whether a member belongs to a set.
-
SMEMBERS
Returns all members of a set.
-
SMISMEMBER
Determines whether multiple members belong to a set.
-
SMOVE
Moves a member from one set to another.
-
SPOP
Returns one or more random members from a set after removing them. Deletes the set if the last member was popped.
-
SRANDMEMBER
Get one or multiple random members from a set
-
SREM
Removes one or more members from a set. Deletes the set if the last member was removed.
-
SSCAN
Iterates over members of a set.
-
SUNION
Returns the union of multiple sets.
-
SUNIONSTORE
Stores the union of multiple sets in a key.
Sorted Set Commands
-
BZMPOP
Removes and returns a member by score from one or more sorted sets. Blocks until a member is available otherwise. Deletes the sorted set if the last element was popped.
-
BZPOPMAX
Removes and returns the member with the highest score from one or more sorted sets. Blocks until a member available otherwise. Deletes the sorted set if the last element was popped.
-
BZPOPMIN
Removes and returns the member with the lowest score from one or more sorted sets. Blocks until a member is available otherwise. Deletes the sorted set if the last element was popped.
-
ZADD
Adds one or more members to a sorted set, or updates their scores. Creates the key if it doesn't exist.
-
ZCARD
Returns the number of members in a sorted set.
-
ZCOUNT
Returns the count of members in a sorted set that have scores within a range.
-
ZDIFF
Returns the difference between multiple sorted sets.
-
ZDIFFSTORE
Stores the difference of multiple sorted sets in a key.
-
ZINCRBY
Increments the score of a member in a sorted set.
-
ZINTER
Returns the intersect of multiple sorted sets.
-
ZINTERCARD
Returns the number of members of the intersect of multiple sorted sets.
-
ZINTERSTORE
Stores the intersect of multiple sorted sets in a key.
-
ZLEXCOUNT
Returns the number of members in a sorted set within a lexicographical range.
-
ZMPOP
Returns the highest- or lowest-scoring members from one or more sorted sets after removing them. Deletes the sorted set if the last member was popped.
-
ZMSCORE
Returns the score of one or more members in a sorted set.
-
ZPOPMAX
Returns the highest-scoring members from a sorted set after removing them. Deletes the sorted set if the last member was popped.
-
ZPOPMIN
Returns the lowest-scoring members from a sorted set after removing them. Deletes the sorted set if the last member was popped.
-
ZRANDMEMBER
Returns one or more random members from a sorted set.
-
ZRANGE
Returns members in a sorted set within a range of indexes.
-
ZRANGEBYLEX
Returns members in a sorted set within a lexicographical range.
-
ZRANGEBYSCORE
Returns members in a sorted set within a range of scores.
-
ZRANGESTORE
Stores a range of members from sorted set in a key.
-
ZRANK
Returns the index of a member in a sorted set ordered by ascending scores.
-
ZREM
Removes one or more members from a sorted set. Deletes the sorted set if all members were removed.
-
ZREMRANGEBYLEX
Removes members in a sorted set within a lexicographical range. Deletes the sorted set if all members were removed.
-
ZREMRANGEBYRANK
Removes members in a sorted set within a range of indexes. Deletes the sorted set if all members were removed.
-
ZREMRANGEBYSCORE
Removes members in a sorted set within a range of scores. Deletes the sorted set if all members were removed.
-
ZREVRANGE
Returns members in a sorted set within a range of indexes in reverse order.
-
ZREVRANGEBYLEX
Returns members in a sorted set within a lexicographical range in reverse order.
-
ZREVRANGEBYSCORE
Returns members in a sorted set within a range of scores in reverse order.
-
ZREVRANK
Returns the index of a member in a sorted set ordered by descending scores.
-
ZSCAN
Iterates over members and scores of a sorted set.
-
ZSCORE
Returns the score of a member in a sorted set.
-
ZUNION
Returns the union of multiple sorted sets.
-
ZUNIONSTORE
Stores the union of multiple sorted sets in a key.
Stream Commands
-
XACK
Returns the number of messages that were successfully acknowledged by the consumer group member of a stream.
-
XADD
Appends a new message to a stream. Creates the key if it doesn't exist.
-
XAUTOCLAIM
Changes, or acquires, ownership of messages in a consumer group, as if the messages were delivered to as consumer group member.
-
XCLAIM
Changes, or acquires, ownership of a message in a consumer group, as if the message was delivered a consumer group member.
-
XDEL
Returns the number of messages after removing them from a stream.
-
XGROUP CREATE
Creates a consumer group.
-
XGROUP CREATECONSUMER
Creates a consumer in a consumer group.
-
XGROUP DELCONSUMER
Deletes a consumer from a consumer group.
-
XGROUP DESTROY
Destroys a consumer group.
-
XGROUP SETID
Sets the last-delivered ID of a consumer group.
-
XINFO CONSUMERS
Returns a list of the consumers in a consumer group.
-
XINFO GROUPS
Returns a list of the consumer groups of a stream.
-
XINFO STREAM
Returns information about a stream.
-
XLEN
Return the number of messages in a stream.
-
XPENDING
Returns the information and entries from a stream consumer group's pending entries list.
-
XRANGE
Returns the messages from a stream within a range of IDs.
-
XREAD
Returns messages from multiple streams with IDs greater than the ones requested. Blocks until a message is available otherwise.
-
XREADGROUP
Returns new or historical messages from a stream for a consumer in a group. Blocks until a message is available otherwise.
-
XREVRANGE
Returns the messages from a stream within a range of IDs in reverse order.
-
XTRIM
Deletes messages from the beginning of a stream.
String Commands
-
APPEND
Appends a string to the value of a key. Creates the key if it doesn't exist.
-
DECR
Decrements the integer value of a key by one. Uses 0 as initial value if the key doesn't exist.
-
DECRBY
Decrements a number from the integer value of a key. Uses 0 as initial value if the key doesn't exist.
-
GET
Returns the string value of a key.
-
GETDEL
Returns the string value of a key after deleting the key.
-
GETEX
Returns the string value of a key after setting its expiration time.
-
GETRANGE
Returns a substring of the string stored at a key.
-
GETSET
Returns the previous string value of a key after setting it to a new value.
-
INCR
Increments the integer value of a key by one. Uses 0 as initial value if the key doesn't exist.
-
INCRBY
Increments the integer value of a key by a number. Uses 0 as initial value if the key doesn't exist.
-
INCRBYFLOAT
Increment the floating point value of a key by a number. Uses 0 as initial value if the key doesn't exist.
-
LCS
Finds the longest common substring.
-
MGET
Atomically returns the string values of one or more keys.
-
MSET
Atomically creates or modifies the string values of one or more keys.
-
MSETNX
Atomically modifies the string values of one or more keys only when all keys don't exist.
-
PSETEX
Sets both string value and expiration time in milliseconds of a key. The key is created if it doesn't exist.
-
SET
Sets the string value of a key, ignoring its type. The key is created if it doesn't exist.
-
SETEX
Sets the string value and expiration time of a key. Creates the key if it doesn't exist.
-
SETNX
Set the string value of a key only when the key doesn't exist.
-
SETRANGE
Overwrites a part of a string value with another by an offset. Creates the key if it doesn't exist.
-
STRLEN
Returns the length of a string value.
-
SUBSTR
Returns a substring from a string value.
Transaction Commands
-
DISCARD
Discards a transaction.
-
EXEC
Executes all commands in a transaction.
-
MULTI
Starts a transaction.
Restricted Valkey and Redis OSS commands
To deliver a managed service experience, ElastiCache restricts access to certain cache engine-specific commands that require advanced privileges. For caches running Redis OSS, the following commands are unavailable:
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
In addition, the following commands are unavailable for serverless caches:
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
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
unwatch
wait
watch
Supported Memcached commands
ElastiCache Serverless for Memcached supports all of the memcached
commands
Client connections require TLS, as a result UDP protocol is not supported.
Binary protocol is not supported, as it is officially deprecated
in memcached 1.6. GET/GETS
commands are limited to 16KB to avoid potential DoS attack to the server with fetching large number of keys.Delayed
flush_all
command will be rejected withCLIENT_ERROR
.Commands that configure the engine or reveal internal information about engine state or logs are not supported, such as:
For
STATS
command, onlystats
andstats reset
are supported. Other variations will returnERROR
lru / lru_crawler
- modification for LRU and LRU crawler settingswatch
- watches memcached server logsverbosity
- configures the server log levelme
- meta debug (me) command is not supported