Skip to content
This repository was archived by the owner on Mar 9, 2026. It is now read-only.
This repository was archived by the owner on Mar 9, 2026. It is now read-only.

Document ACL categories #1598

Description

@zuiderkwast

Add a short description to each of the ACL categories on the page https://redis.io/topics/acl.

This is number 2 in "A few things that came up" redis/redis#6860.

Overview

To document the meaning of the categories, we first need to get an overview and try to find some patterns. Below, the categorization is visualized in two ways: (1) a command and category matrix and (2) a list of all commands for each category.

Some conclusions:

  • All commands are either @fast or @slow.
  • All commands are either @read or @write or neither of the two.
  • Commands belong to at most one type (set, sortedset, list, hash, string, bitmap, hyperloglog, geo, stream, pubsub).
  • Other categories (keyspace, admin, connection, blocking, dangerous, connection, transaction, scripting) have only a few commands in each.

Command and category matrix

COMMAND keyspace read write set sortedset list hash string bitmap hyperloglog geo stream pubsub admin fast slow blocking dangerous connection transaction scripting
slaveof admin slow dangerous
pexpiretime keyspace read fast
pfdebug write hyperloglog admin slow dangerous
eval_ro slow scripting
readonly keyspace fast
ltrim write list slow
wait keyspace slow
zlexcount read sortedset fast
xack write stream fast
blmove write list slow blocking
zmscore read sortedset fast
host: read slow
shutdown admin slow dangerous
stralgo read string slow
slowlog admin slow dangerous
zrem write sortedset fast
bitfield write bitmap slow
module admin slow dangerous
save admin slow dangerous
failover admin slow dangerous
bitpos read bitmap slow
move keyspace write fast
xdel write stream fast
lmove write list slow
incrby write string fast
restore keyspace write slow dangerous
lolwut read fast
bitcount read bitmap slow
linsert write list slow
pfadd write hyperloglog fast
subscribe pubsub slow
georadius_ro read geo slow
getrange read string slow
renamenx keyspace write fast
copy keyspace write slow
mget read string fast
sort write set sortedset list slow dangerous
zrevrangebylex read sortedset slow
zpopmax write sortedset fast
hmset write hash fast
msetnx write string slow
xlen read stream fast
hexists read hash fast
reset fast connection
smismember read set fast
bitfield_ro read bitmap fast
smembers read set slow
getdel write string fast
get read string fast
rpushx write list fast
hget read hash fast
xclaim write stream fast
sunion read set slow
zcount read sortedset fast
xinfo read stream slow
llen read list fast
restore-asking keyspace write slow dangerous
acl admin slow dangerous
geopos read geo slow
xgroup write stream slow
hello fast connection
command slow connection
lastsave admin fast dangerous
rename keyspace write slow
discard fast transaction
geosearchstore write geo slow
smove write set fast
rpush write list fast
zrangebylex read sortedset slow
hset write hash fast
hlen read hash fast
multi fast transaction
zunionstore write sortedset slow
watch fast transaction
zrange read sortedset slow
pexpireat keyspace write fast
pubsub pubsub slow
object keyspace read slow
punsubscribe pubsub slow
setex write string slow
replicaof admin slow dangerous
xread read stream slow blocking
zrank read sortedset fast
migrate keyspace write slow dangerous
flushdb keyspace write slow dangerous
getbit read bitmap fast
zinter read sortedset slow
georadiusbymember write geo slow
pexpire keyspace write fast
lpop write list fast
zremrangebyscore write sortedset slow
srem write set fast
exec slow transaction
hincrby write hash fast
psetex write string slow
getset write string fast
lpos read list slow
hvals read hash slow
lindex read list slow
zremrangebyrank write sortedset slow
mset write string slow
expiretime keyspace read fast
replconf admin slow dangerous
evalsha_ro slow scripting
role fast dangerous
brpop write list slow blocking
swapdb keyspace write fast dangerous
psync admin slow dangerous
geohash read geo slow
zdiff read sortedset slow
lset write list slow
getex write string fast
xrange read stream slow
zcard read sortedset fast
pfcount read hyperloglog slow
bzpopmax write sortedset fast blocking
bitop write bitmap slow
eval slow scripting
pfmerge write hyperloglog slow
publish pubsub fast
psubscribe pubsub slow
georadiusbymember_ro read geo slow
sinterstore write set slow
hincrbyfloat write hash fast
xreadgroup write stream slow blocking
dump keyspace read slow
expireat keyspace write fast
decrby write string fast
bgsave admin slow dangerous
unwatch fast transaction
post read slow
sadd write set fast
zunion read sortedset slow
exists keyspace read fast
geosearch read geo slow
touch keyspace read fast
zrevrangebyscore read sortedset slow
srandmember read set slow
config admin slow dangerous
dbsize keyspace read fast
script slow scripting
zinterstore write sortedset slow
geoadd write geo slow
del keyspace write slow
zrevrange read sortedset slow
scard read set fast
setbit write bitmap slow
zrangestore write sortedset slow
select keyspace fast
setnx write string fast
echo fast connection
ping fast connection
zrangebyscore read sortedset slow
sdiffstore write set slow
georadius write geo slow
unsubscribe pubsub slow
spop write set fast
evalsha slow scripting
auth fast connection
type keyspace read fast
lpush write list fast
flushall keyspace write slow dangerous
cluster admin slow dangerous
zrevrank read sortedset fast
substr read string slow
setrange write string slow
set write string slow
xrevrange read stream slow
sismember read set fast
xadd write stream fast
bgrewriteaof admin slow dangerous
sinter read set slow
xautoclaim write stream fast
zadd write sortedset fast
pttl keyspace read fast
pfselftest hyperloglog admin slow dangerous
hmget read hash fast
incrbyfloat write string fast
brpoplpush write list slow blocking
keys keyspace read slow dangerous
memory read slow
decr write string fast
scan keyspace read slow
sunionstore write set slow
readwrite keyspace fast
monitor admin slow dangerous
geodist read geo slow
blpop write list slow blocking
zdiffstore write sortedset slow
hdel write hash fast
asking keyspace fast
xpending read stream slow
zrandmember read sortedset slow
hstrlen read hash fast
hrandfield read hash slow
xsetid write stream fast
incr write string fast
zscan read sortedset slow
append write string fast
hgetall read hash slow
client admin slow dangerous connection
hscan read hash slow
persist keyspace write fast
zremrangebylex write sortedset slow
lpushx write list fast
info slow dangerous
rpop write list fast
sync admin slow dangerous
lrem write list slow
lrange read list slow
strlen read string fast
debug admin slow dangerous
zscore read sortedset fast
hkeys read hash slow
xtrim write stream slow
sscan read set slow
sdiff read set slow
latency admin slow dangerous
zpopmin write sortedset fast
expire keyspace write fast
randomkey keyspace read slow
ttl keyspace read fast
rpoplpush write list slow
bzpopmin write sortedset fast blocking
time fast
zincrby write sortedset fast
hsetnx write hash fast
unlink keyspace write fast

Commands by category

Category Commands
keyspace pexpiretime, readonly, wait, move, restore, renamenx, copy, restore-asking, rename, pexpireat, object, migrate, flushdb, pexpire, expiretime, swapdb, dump, expireat, exists, touch, dbsize, del, select, type, flushall, pttl, keys, scan, readwrite, asking, persist, expire, randomkey, ttl, unlink
read pexpiretime, zlexcount, zmscore, host:, stralgo, bitpos, lolwut, bitcount, georadius_ro, getrange, mget, zrevrangebylex, xlen, hexists, smismember, bitfield_ro, smembers, get, hget, sunion, zcount, xinfo, llen, geopos, zrangebylex, hlen, zrange, object, xread, zrank, getbit, zinter, lpos, hvals, lindex, expiretime, geohash, zdiff, xrange, zcard, pfcount, georadiusbymember_ro, dump, post, zunion, exists, geosearch, touch, zrevrangebyscore, srandmember, dbsize, zrevrange, scard, zrangebyscore, type, zrevrank, substr, xrevrange, sismember, sinter, pttl, hmget, keys, memory, scan, geodist, xpending, zrandmember, hstrlen, hrandfield, zscan, hgetall, hscan, lrange, strlen, zscore, hkeys, sscan, sdiff, randomkey, ttl
write pfdebug, ltrim, xack, blmove, zrem, bitfield, move, xdel, lmove, incrby, restore, linsert, pfadd, renamenx, copy, sort, zpopmax, hmset, msetnx, getdel, rpushx, xclaim, restore-asking, xgroup, rename, geosearchstore, smove, rpush, hset, zunionstore, pexpireat, setex, migrate, flushdb, georadiusbymember, pexpire, lpop, zremrangebyscore, srem, hincrby, psetex, getset, zremrangebyrank, mset, brpop, swapdb, lset, getex, bzpopmax, bitop, pfmerge, sinterstore, hincrbyfloat, xreadgroup, expireat, decrby, sadd, zinterstore, geoadd, del, setbit, zrangestore, setnx, sdiffstore, georadius, spop, lpush, flushall, setrange, set, xadd, xautoclaim, zadd, incrbyfloat, brpoplpush, decr, sunionstore, blpop, zdiffstore, hdel, xsetid, incr, append, persist, zremrangebylex, lpushx, rpop, lrem, xtrim, zpopmin, expire, rpoplpush, bzpopmin, zincrby, hsetnx, unlink
set sort, smismember, smembers, sunion, smove, srem, sinterstore, sadd, srandmember, scard, sdiffstore, spop, sismember, sinter, sunionstore, sscan, sdiff
sortedset zlexcount, zmscore, zrem, sort, zrevrangebylex, zpopmax, zcount, zrangebylex, zunionstore, zrange, zrank, zinter, zremrangebyscore, zremrangebyrank, zdiff, zcard, bzpopmax, zunion, zrevrangebyscore, zinterstore, zrevrange, zrangestore, zrangebyscore, zrevrank, zadd, zdiffstore, zrandmember, zscan, zremrangebylex, zscore, zpopmin, bzpopmin, zincrby
list ltrim, blmove, lmove, linsert, sort, rpushx, llen, rpush, lpop, lpos, lindex, brpop, lset, lpush, brpoplpush, blpop, lpushx, rpop, lrem, lrange, rpoplpush
hash hmset, hexists, hget, hset, hlen, hincrby, hvals, hincrbyfloat, hmget, hdel, hstrlen, hrandfield, hgetall, hscan, hkeys, hsetnx
string stralgo, incrby, getrange, mget, msetnx, getdel, get, setex, psetex, getset, mset, getex, decrby, setnx, substr, setrange, set, incrbyfloat, decr, incr, append, strlen
bitmap bitfield, bitpos, bitcount, bitfield_ro, getbit, bitop, setbit
hyperloglog pfdebug, pfadd, pfcount, pfmerge, pfselftest
geo georadius_ro, geopos, geosearchstore, georadiusbymember, geohash, georadiusbymember_ro, geosearch, geoadd, georadius, geodist
stream xack, xdel, xlen, xclaim, xinfo, xgroup, xread, xrange, xreadgroup, xrevrange, xadd, xautoclaim, xpending, xsetid, xtrim
pubsub subscribe, pubsub, punsubscribe, publish, psubscribe, unsubscribe
admin slaveof, pfdebug, shutdown, slowlog, module, save, failover, acl, lastsave, replicaof, replconf, psync, bgsave, config, cluster, bgrewriteaof, pfselftest, monitor, client, sync, debug, latency
fast pexpiretime, readonly, zlexcount, xack, zmscore, zrem, move, xdel, incrby, lolwut, pfadd, renamenx, mget, zpopmax, hmset, xlen, hexists, reset, smismember, bitfield_ro, getdel, get, rpushx, hget, xclaim, zcount, llen, hello, lastsave, discard, smove, rpush, hset, hlen, multi, watch, pexpireat, zrank, getbit, pexpire, lpop, srem, hincrby, getset, expiretime, role, swapdb, getex, zcard, bzpopmax, publish, hincrbyfloat, expireat, decrby, unwatch, sadd, exists, touch, dbsize, scard, select, setnx, echo, ping, spop, auth, type, lpush, zrevrank, sismember, xadd, xautoclaim, zadd, pttl, hmget, incrbyfloat, decr, readwrite, hdel, asking, hstrlen, xsetid, incr, append, persist, lpushx, rpop, strlen, zscore, zpopmin, expire, ttl, bzpopmin, time, zincrby, hsetnx, unlink
slow slaveof, pfdebug, eval_ro, ltrim, wait, blmove, host:, shutdown, stralgo, slowlog, bitfield, module, save, failover, bitpos, lmove, restore, bitcount, linsert, subscribe, georadius_ro, getrange, copy, sort, zrevrangebylex, msetnx, smembers, sunion, xinfo, restore-asking, acl, geopos, xgroup, command, rename, geosearchstore, zrangebylex, zunionstore, zrange, pubsub, object, punsubscribe, setex, replicaof, xread, migrate, flushdb, zinter, georadiusbymember, zremrangebyscore, exec, psetex, lpos, hvals, lindex, zremrangebyrank, mset, replconf, evalsha_ro, brpop, psync, geohash, zdiff, lset, xrange, pfcount, bitop, eval, pfmerge, psubscribe, georadiusbymember_ro, sinterstore, xreadgroup, dump, bgsave, post, zunion, geosearch, zrevrangebyscore, srandmember, config, script, zinterstore, geoadd, del, zrevrange, setbit, zrangestore, zrangebyscore, sdiffstore, georadius, unsubscribe, evalsha, flushall, cluster, substr, setrange, set, xrevrange, bgrewriteaof, sinter, pfselftest, brpoplpush, keys, memory, scan, sunionstore, monitor, geodist, blpop, zdiffstore, xpending, zrandmember, hrandfield, zscan, hgetall, client, hscan, zremrangebylex, info, sync, lrem, lrange, debug, hkeys, xtrim, sscan, sdiff, latency, randomkey, rpoplpush
blocking blmove, xread, brpop, bzpopmax, xreadgroup, brpoplpush, blpop, bzpopmin
dangerous slaveof, pfdebug, shutdown, slowlog, module, save, failover, restore, sort, restore-asking, acl, lastsave, replicaof, migrate, flushdb, replconf, role, swapdb, psync, bgsave, config, flushall, cluster, bgrewriteaof, pfselftest, keys, monitor, client, info, sync, debug, latency
connection reset, hello, command, echo, ping, auth, client
transaction discard, multi, watch, exec, unwatch
scripting eval_ro, evalsha_ro, eval, script, evalsha

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions