02 / 04

How do Redis ACLs (Redis 6+) improve on the single-password model?

ACLs allow per-user permissions: which commands they can run (+get -set), which keys they can access (~cache:*), and which channels (&notifications). You can create read-only users, write-only users, and admin users without sharing a global password. Managed via ACL SETUSER or aclfile.

Difficulty: 5/10
Topics: user permissions, command categories, migration

Scenario Questions

0-2 years experience
  1. 1

    You need to give a specific client read‑only access to a subset of keys in Redis. How would you configure an ACL to achieve that, and what command would the client use to authenticate?

  2. 2

    If you add a new user with a password but forget to assign any command categories, what will happen when the client tries to run a GET command?

2-5 years experience
  1. 1

    Your team migrated from Redis 5 to Redis 6 and started seeing authentication failures for some services. Walk me through how you would debug whether the issue is due to ACL misconfiguration versus password changes.

  2. 2

    We want to limit a background worker to only execute EVALSHA and a few hash commands. Explain how you would set up the ACL and what trade‑offs you consider regarding command categories versus explicit command lists.

5-8 years experience
  1. 1

    Design a strategy for rolling out ACLs across a large fleet of microservices that currently share a single password, ensuring zero downtime and minimal risk of lock‑out.

  2. 2

    At high scale, how do ACL checks impact Redis performance, and what mitigations would you put in place if you notice latency spikes after enabling fine‑grained ACLs?

8+ years experience
  1. 1

    Our organization is moving from a monolithic Redis instance with a single password to a multi‑tenant architecture with per‑tenant ACLs. Discuss the architectural changes, migration plan, and how you would handle legacy clients that cannot be updated immediately.

  2. 2

    Consider a scenario where multiple teams need to share a Redis cluster but enforce strict data isolation. How would you use ACLs together with other Redis features (e.g., key‑space notifications, namespaces) to provide a secure, maintainable solution at scale?

Follow-up Questions

  • What would you do if a user needs temporary elevated privileges?
  • How would you audit ACL changes over time?
  • Can you describe how you would test your ACL configuration before pushing to production?