ACL Categories
Every Dragonfly command belongs to one or more ACL categories.
A rule +@<category> lets a user run every command in the category, and -@<category> takes them away again.
Rules apply in order, as described in Access Control Lists.
dragonfly> ACL SETUSER reporter ON >secret ~* -@all +@read
OK
Category Names
The names are the ones ACL CAT returns, and a few differ from Redis and Valkey:
- HyperLogLog commands are in
@hyperlog. Dragonfly rejects+@hyperloglogwithERR Unrecognized parameter. - Dragonfly adds
@bloom,@cms,@cuckoo_filter,@ft_search,@json,@throttleand@topkfor its Redis Stack compatible commands.+@searchis accepted as an alias of+@ft_search.
Subcommands
A subcommand listed below as CMD|SUB has its own ACL entry and its own categories.
+client|kill grants only CLIENT KILL, and +@all -client|kill denies only CLIENT KILL.
For CLIENT and MEMORY, a rule for the container also covers these subcommands:
+client grants CLIENT KILL, and -memory denies MEMORY ARENA.
Every other subcommand runs under the categories of its container.
For example, CLIENT GETNAME has the categories of CLIENT, and a rule +client|getname is rejected with ERR Unrecognized parameter.
_XGROUP_HELP is the internal command that serves XGROUP HELP.
DFLY and DFLYMIGRATE are internal replication and slot-migration commands, and GAT serves the Memcached protocol.
Categories and Commands
The lists below are generated from ACL CAT <category> of the documented Dragonfly release.
@admin
Administrative commands. Normal applications never need them. 39 commands.
ACL|DELUSER, ACL|DRYRUN, ACL|GETUSER, ACL|LIST, ACL|LOAD, ACL|LOG, ACL|SAVE, ACL|SETUSER, ACL|USERS, ADDREPLICAOF, BGSAVE, CLIENT|KILL, CLIENT|LIST, CLIENT|MIGRATE, CLIENT|PAUSE, CLIENT|UNPAUSE, CONFIG, DEBUG, DFLY, DFLYCLUSTER, DFLYMIGRATE, FT.CONFIG, LASTSAVE, LATENCY, MEMORY|ARENA, MEMORY|DECOMMIT, MEMORY|DEFRAGMENT, MEMORY|DEFRAGMENT-SEGMENTS, MEMORY|TRACK, MODULE, MONITOR, REPLCONF, REPLICAOF, REPLTAKEOVER, ROLE, SAVE, SHUTDOWN, SLAVEOF, SLOWLOG
@bitmap
Bitmap commands. 7 commands.
BITCOUNT, BITFIELD, BITFIELD_RO, BITOP, BITPOS, GETBIT, SETBIT
@blocking
Commands that may block the connection until another command releases it. 11 commands.
BLMOVE, BLMPOP, BLPOP, BRPOP, BRPOPLPUSH, BZMPOP, BZPOPMAX, BZPOPMIN, WAIT, XREAD, XREADGROUP
@bloom
Bloom filter commands (BF.*). Dragonfly-specific category. 8 commands.
BF.ADD, BF.EXISTS, BF.INFO, BF.LOADCHUNK, BF.MADD, BF.MEXISTS, BF.RESERVE, BF.SCANDUMP
@cms
Count-min sketch commands (CMS.*). Dragonfly-specific category. 6 commands.
CMS.INCRBY, CMS.INFO, CMS.INITBYDIM, CMS.INITBYPROB, CMS.MERGE, CMS.QUERY
@connection
Commands that affect the current connection or other connections. 17 commands.
AUTH, CLIENT, CLIENT|KILL, CLIENT|LIST, CLIENT|MIGRATE, CLIENT|PAUSE, CLIENT|UNPAUSE, COMMAND, ECHO, HELLO, PING, QUIT, READONLY, READWRITE, RESET, SELECT, WAIT
@cuckoo_filter
Cuckoo filter commands (CF.*). Dragonfly-specific category. 11 commands.
CF.ADD, CF.ADDNX, CF.COMPACT, CF.COUNT, CF.DEL, CF.EXISTS, CF.INFO, CF.INSERT, CF.INSERTNX, CF.MEXISTS, CF.RESERVE
@dangerous
Potentially dangerous commands; consider each one with care. 47 commands.
ACL|DELUSER, ACL|DRYRUN, ACL|GETUSER, ACL|LIST, ACL|LOAD, ACL|LOG, ACL|SAVE, ACL|SETUSER, ACL|USERS, ADDREPLICAOF, BGSAVE, CLIENT|KILL, CLIENT|LIST, CLIENT|MIGRATE, CLIENT|PAUSE, CLIENT|UNPAUSE, CONFIG, DEBUG, DFLY, DFLYCLUSTER, DFLYMIGRATE, FLUSHALL, FLUSHDB, FT.CONFIG, INFO, KEYS, LASTSAVE, LATENCY, MEMORY|ARENA, MEMORY|DECOMMIT, MEMORY|DEFRAGMENT, MEMORY|DEFRAGMENT-SEGMENTS, MEMORY|TRACK, MODULE, MONITOR, REPLCONF, REPLICAOF, REPLTAKEOVER, RESTORE, RM, ROLE, SAVE, SHUTDOWN, SLAVEOF, SLOWLOG, SORT, SORT_RO
@fast
Fast O(1) commands. They may loop over their arguments, but not over the elements of a key. 154 commands.
APPEND, AUTH, BF.ADD, BF.EXISTS, BF.MADD, BF.MEXISTS, BF.RESERVE, BITFIELD_RO, BZPOPMAX, BZPOPMIN, CF.COUNT, CF.DEL, CF.EXISTS, CF.INFO, CF.MEXISTS, CF.RESERVE, CL.THROTTLE, CMS.INCRBY, CMS.INFO, CMS.INITBYDIM, CMS.INITBYPROB, CMS.QUERY, DBSIZE, DECR, DECRBY, DELEX, DIGEST, DISCARD, ECHO, EXISTS, EXPIRE, EXPIREAT, EXPIRETIME, FIELDEXPIRE, FIELDTTL, GET, GETBIT, GETDEL, GETEX, GETSET, HDEL, HELLO, HEXISTS, HEXPIRE, HGET, HGETEX, HINCRBY, HINCRBYFLOAT, HLEN, HMGET, HMSET, HPEXPIRETIME, HSET, HSETEX, HSETNX, HSTRLEN, HTTL, INCR, INCRBY, INCRBYFLOAT, JSON.ARRAPPEND, JSON.ARRINDEX, JSON.ARRINSERT, JSON.ARRLEN, JSON.ARRPOP, JSON.ARRTRIM, JSON.CLEAR, JSON.DEBUG, JSON.GET, JSON.MERGE, JSON.MGET, JSON.MSET, JSON.NUMINCRBY, JSON.NUMMULTBY, JSON.OBJKEYS, JSON.OBJLEN, JSON.RESP, JSON.SET, JSON.STRAPPEND, JSON.STRLEN, JSON.TOGGLE, JSON.TYPE, LASTSAVE, LLEN, LPOP, LPUSH, LPUSHX, MGET, MOVE, MULTI, PERSIST, PEXPIRE, PEXPIREAT, PEXPIRETIME, PFADD, PING, PREPEND, PTTL, PUBLISH, QUIT, READONLY, READWRITE, RENAMENX, RESET, ROLE, RPOP, RPUSH, RPUSHX, SADD, SADDEX, SCARD, SELECT, SETNX, SHRINK, SISMEMBER, SMISMEMBER, SMOVE, SPOP, SPUBLISH, SREM, STICK, STRLEN, TIME, TOPK.ADD, TOPK.COUNT, TOPK.INCRBY, TOPK.INFO, TOPK.QUERY, TOPK.RESERVE, TOUCH, TTL, TYPE, UNLINK, UNWATCH, WATCH, XACK, XADD, XAUTOCLAIM, XCLAIM, XDEL, XLEN, XSETID, ZADD, ZCARD, ZCOUNT, ZINCRBY, ZLEXCOUNT, ZMSCORE, ZPOPMAX, ZPOPMIN, ZRANK, ZREM, ZREVRANK, ZSCORE
@ft_search
Search commands (FT.*). Dragonfly-specific category; +@search is accepted as an alias. 17 commands.
FT.AGGREGATE, FT.ALIASADD, FT.ALIASDEL, FT.ALIASUPDATE, FT.ALTER, FT.CONFIG, FT.CREATE, FT.DROPINDEX, FT.HYBRID, FT.INFO, FT.PROFILE, FT.SEARCH, FT.SYNDUMP, FT.SYNUPDATE, FT.TAGVALS, FT._DEBUG, FT._LIST
@geo
Geospatial index commands. 10 commands.
GEOADD, GEODIST, GEOHASH, GEOPOS, GEORADIUS, GEORADIUSBYMEMBER, GEORADIUSBYMEMBER_RO, GEORADIUS_RO, GEOSEARCH, GEOSEARCHSTORE
@hash
Hash commands. 22 commands.
FIELDEXPIRE, HDEL, HEXISTS, HEXPIRE, HGET, HGETALL, HGETEX, HINCRBY, HINCRBYFLOAT, HKEYS, HLEN, HMGET, HMSET, HPEXPIRETIME, HRANDFIELD, HSCAN, HSET, HSETEX, HSETNX, HSTRLEN, HTTL, HVALS
@hyperlog
HyperLogLog commands. Redis and Valkey call this category @hyperloglog; Dragonfly does not accept that name. 3 commands.
PFADD, PFCOUNT, PFMERGE
@json
JSON commands (JSON.*). Dragonfly-specific category. 24 commands.
JSON.ARRAPPEND, JSON.ARRINDEX, JSON.ARRINSERT, JSON.ARRLEN, JSON.ARRPOP, JSON.ARRTRIM, JSON.CLEAR, JSON.DEBUG, JSON.DEL, JSON.FORGET, JSON.GET, JSON.MERGE, JSON.MGET, JSON.MSET, JSON.NUMINCRBY, JSON.NUMMULTBY, JSON.OBJKEYS, JSON.OBJLEN, JSON.RESP, JSON.SET, JSON.STRAPPEND, JSON.STRLEN, JSON.TOGGLE, JSON.TYPE
@keyspace
Commands that read or write keys, databases or their metadata regardless of the data type. 30 commands.
COPY, DBSIZE, DEL, DELEX, DUMP, EXISTS, EXPIRE, EXPIREAT, EXPIRETIME, FIELDTTL, FLUSHALL, FLUSHDB, KEYS, MOVE, PERSIST, PEXPIRE, PEXPIREAT, PEXPIRETIME, PTTL, RANDOMKEY, RENAME, RENAMENX, RESTORE, RM, SCAN, STICK, TOUCH, TTL, TYPE, UNLINK
@list
List commands. 24 commands.
BLMOVE, BLMPOP, BLPOP, BRPOP, BRPOPLPUSH, LINDEX, LINSERT, LLEN, LMOVE, LMPOP, LPOP, LPOS, LPUSH, LPUSHX, LRANGE, LREM, LSET, LTRIM, RPOP, RPOPLPUSH, RPUSH, RPUSHX, SORT, SORT_RO
@pubsub
Pub/Sub commands. 9 commands.
PSUBSCRIBE, PUBLISH, PUBSUB, PUNSUBSCRIBE, SPUBLISH, SSUBSCRIBE, SUBSCRIBE, SUNSUBSCRIBE, UNSUBSCRIBE
@read
Commands that read keys (values or metadata). 108 commands.
BF.EXISTS, BF.INFO, BF.MEXISTS, BF.SCANDUMP, BITCOUNT, BITFIELD_RO, BITPOS, CF.COUNT, CF.EXISTS, CF.INFO, CF.MEXISTS, CMS.INFO, CMS.QUERY, DBSIZE, DIGEST, DUMP, EXISTS, EXPIRETIME, FIELDTTL, GEODIST, GEOHASH, GEOPOS, GEORADIUSBYMEMBER_RO, GEORADIUS_RO, GEOSEARCH, GET, GETBIT, GETRANGE, HEXISTS, HGET, HGETALL, HKEYS, HLEN, HMGET, HPEXPIRETIME, HRANDFIELD, HSCAN, HSTRLEN, HTTL, HVALS, JSON.ARRINDEX, JSON.ARRLEN, JSON.DEBUG, JSON.GET, JSON.MGET, JSON.OBJKEYS, JSON.OBJLEN, JSON.RESP, JSON.STRLEN, JSON.TYPE, KEYS, LINDEX, LLEN, LPOS, LRANGE, MEMORY, MGET, PEXPIRETIME, PFCOUNT, PTTL, RANDOMKEY, SCAN, SCARD, SDIFF, SINTER, SINTERCARD, SISMEMBER, SMEMBERS, SMISMEMBER, SORT_RO, SRANDMEMBER, SSCAN, STRLEN, SUBSTR, SUNION, TOPK.COUNT, TOPK.INFO, TOPK.LIST, TOPK.QUERY, TOUCH, TTL, TYPE, XINFO, XLEN, XPENDING, XRANGE, XREAD, XREVRANGE, ZCARD, ZCOUNT, ZDIFF, ZINTER, ZINTERCARD, ZLEXCOUNT, ZMSCORE, ZRANDMEMBER, ZRANGE, ZRANGEBYLEX, ZRANGEBYSCORE, ZRANK, ZREVRANGE, ZREVRANGEBYLEX, ZREVRANGEBYSCORE, ZREVRANK, ZSCAN, ZSCORE, ZUNION, _XGROUP_HELP
@scripting
Scripting commands. 6 commands.
EVAL, EVALSHA, EVALSHA_RO, EVAL_RO, FUNCTION, SCRIPT
@set
Set commands. 21 commands.
FIELDEXPIRE, SADD, SADDEX, SCARD, SDIFF, SDIFFSTORE, SINTER, SINTERCARD, SINTERSTORE, SISMEMBER, SMEMBERS, SMISMEMBER, SMOVE, SORT, SORT_RO, SPOP, SRANDMEMBER, SREM, SSCAN, SUNION, SUNIONSTORE
@slow
Every command that is not in @fast. 189 commands.
ACL, ACL|CAT, ACL|DELUSER, ACL|DRYRUN, ACL|GENPASS, ACL|GETUSER, ACL|HELP, ACL|LIST, ACL|LOAD, ACL|LOG, ACL|SAVE, ACL|SETUSER, ACL|USERS, ACL|WHOAMI, ADDREPLICAOF, BF.INFO, BF.LOADCHUNK, BF.SCANDUMP, BGSAVE, BITCOUNT, BITFIELD, BITOP, BITPOS, BLMOVE, BLMPOP, BLPOP, BRPOP, BRPOPLPUSH, BZMPOP, CF.ADD, CF.ADDNX, CF.COMPACT, CF.INSERT, CF.INSERTNX, CLIENT, CLIENT|KILL, CLIENT|LIST, CLIENT|MIGRATE, CLIENT|PAUSE, CLIENT|UNPAUSE, CLUSTER, CMS.MERGE, COMMAND, CONFIG, COPY, DEBUG, DEL, DFLY, DFLYCLUSTER, DFLYMIGRATE, DUMP, EVAL, EVALSHA, EVALSHA_RO, EVAL_RO, EXEC, FLUSHALL, FLUSHDB, FT.AGGREGATE, FT.ALIASADD, FT.ALIASDEL, FT.ALIASUPDATE, FT.ALTER, FT.CONFIG, FT.CREATE, FT.DROPINDEX, FT.HYBRID, FT.INFO, FT.PROFILE, FT.SEARCH, FT.SYNDUMP, FT.SYNUPDATE, FT.TAGVALS, FT._DEBUG, FT._LIST, FUNCTION, GAT, GEOADD, GEODIST, GEOHASH, GEOPOS, GEORADIUS, GEORADIUSBYMEMBER, GEORADIUSBYMEMBER_RO, GEORADIUS_RO, GEOSEARCH, GEOSEARCHSTORE, GETRANGE, HGETALL, HKEYS, HRANDFIELD, HSCAN, HVALS, INFO, JSON.DEL, JSON.FORGET, KEYS, LATENCY, LINDEX, LINSERT, LMOVE, LMPOP, LPOS, LRANGE, LREM, LSET, LTRIM, MEMORY, MEMORY|ARENA, MEMORY|DECOMMIT, MEMORY|DEFRAGMENT, MEMORY|DEFRAGMENT-SEGMENTS, MEMORY|TRACK, MODULE, MONITOR, MSET, MSETNX, PFCOUNT, PFMERGE, PSETEX, PSUBSCRIBE, PUBSUB, PUNSUBSCRIBE, RANDOMKEY, RENAME, REPLCONF, REPLICAOF, REPLTAKEOVER, RESTORE, RM, RPOPLPUSH, SAVE, SCAN, SCRIPT, SDIFF, SDIFFSTORE, SET, SETBIT, SETEX, SETRANGE, SHUTDOWN, SINTER, SINTERCARD, SINTERSTORE, SLAVEOF, SLOWLOG, SMEMBERS, SORT, SORT_RO, SRANDMEMBER, SSCAN, SSUBSCRIBE, SUBSCRIBE, SUBSTR, SUNION, SUNIONSTORE, SUNSUBSCRIBE, TOPK.LIST, UNSUBSCRIBE, WAIT, XGROUP, XINFO, XPENDING, XRANGE, XREAD, XREADGROUP, XREVRANGE, XTRIM, ZDIFF, ZDIFFSTORE, ZINTER, ZINTERCARD, ZINTERSTORE, ZMPOP, ZRANDMEMBER, ZRANGE, ZRANGEBYLEX, ZRANGEBYSCORE, ZRANGESTORE, ZREMRANGEBYLEX, ZREMRANGEBYRANK, ZREMRANGEBYSCORE, ZREVRANGE, ZREVRANGEBYLEX, ZREVRANGEBYSCORE, ZSCAN, ZUNION, ZUNIONSTORE, _XGROUP_HELP
@sortedset
Sorted set commands. 37 commands.
BZMPOP, BZPOPMAX, BZPOPMIN, SORT, SORT_RO, 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
@stream
Stream commands. 16 commands.
XACK, XADD, XAUTOCLAIM, XCLAIM, XDEL, XGROUP, XINFO, XLEN, XPENDING, XRANGE, XREAD, XREADGROUP, XREVRANGE, XSETID, XTRIM, _XGROUP_HELP
@string
String commands. 25 commands.
APPEND, DECR, DECRBY, DELEX, DIGEST, GAT, GET, GETDEL, GETEX, GETRANGE, GETSET, INCR, INCRBY, INCRBYFLOAT, MGET, MSET, MSETNX, PREPEND, PSETEX, SET, SETEX, SETNX, SETRANGE, STRLEN, SUBSTR
@throttle
Rate limiter commands (CL.THROTTLE). Dragonfly-specific category. 1 command.
CL.THROTTLE
@topk
Top-K commands (TOPK.*). Dragonfly-specific category. 7 commands.
TOPK.ADD, TOPK.COUNT, TOPK.INCRBY, TOPK.INFO, TOPK.LIST, TOPK.QUERY, TOPK.RESERVE
@transaction
WATCH, MULTI, EXEC and related commands. 5 commands.
DISCARD, EXEC, MULTI, UNWATCH, WATCH
@write
Commands that write keys (values or metadata). 148 commands.
APPEND, BF.ADD, BF.LOADCHUNK, BF.MADD, BF.RESERVE, BITFIELD, BITOP, BLMOVE, BLMPOP, BLPOP, BRPOP, BRPOPLPUSH, BZMPOP, BZPOPMAX, BZPOPMIN, CF.ADD, CF.ADDNX, CF.COMPACT, CF.DEL, CF.INSERT, CF.INSERTNX, CF.RESERVE, CL.THROTTLE, CMS.INCRBY, CMS.INITBYDIM, CMS.INITBYPROB, CMS.MERGE, COPY, DECR, DECRBY, DEL, DELEX, EXPIRE, EXPIREAT, FIELDEXPIRE, FLUSHALL, FLUSHDB, FT.ALIASADD, FT.ALIASDEL, FT.ALIASUPDATE, FT.ALTER, FT.CREATE, FT.DROPINDEX, FT.SYNUPDATE, FUNCTION, GAT, GEOADD, GEORADIUS, GEORADIUSBYMEMBER, GEOSEARCHSTORE, GETDEL, GETEX, GETSET, HDEL, HEXPIRE, HGETEX, HINCRBY, HINCRBYFLOAT, HMSET, HSET, HSETEX, HSETNX, INCR, INCRBY, INCRBYFLOAT, JSON.ARRAPPEND, JSON.ARRINSERT, JSON.ARRPOP, JSON.ARRTRIM, JSON.CLEAR, JSON.DEL, JSON.FORGET, JSON.MERGE, JSON.MSET, JSON.NUMINCRBY, JSON.NUMMULTBY, JSON.SET, JSON.STRAPPEND, JSON.TOGGLE, LINSERT, LMOVE, LMPOP, LPOP, LPUSH, LPUSHX, LREM, LSET, LTRIM, MOVE, MSET, MSETNX, PERSIST, PEXPIRE, PEXPIREAT, PFADD, PFMERGE, PREPEND, PSETEX, RENAME, RENAMENX, RESTORE, RM, RPOP, RPOPLPUSH, RPUSH, RPUSHX, SADD, SADDEX, SDIFFSTORE, SET, SETBIT, SETEX, SETNX, SETRANGE, SHRINK, SINTERSTORE, SMOVE, SORT, SPOP, SREM, STICK, SUNIONSTORE, TOPK.ADD, TOPK.INCRBY, TOPK.RESERVE, UNLINK, XACK, XADD, XAUTOCLAIM, XCLAIM, XDEL, XGROUP, XREADGROUP, XSETID, XTRIM, ZADD, ZDIFFSTORE, ZINCRBY, ZINTERSTORE, ZMPOP, ZPOPMAX, ZPOPMIN, ZRANGESTORE, ZREM, ZREMRANGEBYLEX, ZREMRANGEBYRANK, ZREMRANGEBYSCORE, ZUNIONSTORE