Skip to main content

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 +@hyperloglog with ERR Unrecognized parameter.
  • Dragonfly adds @bloom, @cms, @cuckoo_filter, @ft_search, @json, @throttle and @topk for its Redis Stack compatible commands. +@search is 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

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