Redis Docker Compose Generator

Generate a Compose file for local Redis. Two defaults in Docker make this worth generating rather than typing: published ports go to every interface, and an unnamed volume means the data dies on the next docker compose down.

Topology
Storage

Without one the data dies with the container on compose down, which is a routine command rather than a destructive one.

compose.yaml

updates as you type

    Examples

    Worked setups you can load into the form above. Each one is a decision the generator makes differently, and the reason it makes it.

    Cluster mode locally

    Nodes advertise an address a client outside Compose cannot reach

    topology
    cluster
    version
    7.4

    A standalone instance

    Bound to localhost, with a named volume so down is not destructive

    topology
    standalone
    persistence
    yes

    Common mistakes

    These are the ones that fail silently. The config is accepted, nothing raises an error, and the consequence arrives later.

    1. Publishing 6379 without an address

      Docker publishes to every interface and writes its own firewall rules, so the host firewall does not stop it. An unauthenticated Redis on a reachable address is remote code execution.

      Instead:Bind it to 127.0.0.1, or do not publish it.

    2. Relying on an anonymous volume

      docker compose down removes it, and down is a routine command.

      Instead:Use a named volume.

    3. Treating container start as readiness

      Dependent services connect before Redis answers, producing intermittent failures on the first request.

      Instead:Add a healthcheck that runs redis-cli ping.

    4. Using the development file in production

      It has no password, no TLS and no resource limits, because those cannot be generated meaningfully.

      Instead:Treat it as a starting point and add all three.

    Two Docker defaults that surprise people with Redis

    Neither is a Redis problem. Both bite harder with Redis than with most images, because an unauthenticated Redis reachable from a network is not merely a data leak.

    Published ports go to 0.0.0.0

    ports: 6379:6379 publishes to every interface, and on many setups this bypasses the host firewall entirely, because Docker writes its own iptables rules. An unauthenticated Redis on a reachable address allows an attacker to write a file anywhere the process can write, which is remote code execution rather than a data leak.

    A container filesystem is not storage

    Without a named volume, everything written is removed with the container, and docker compose down is a routine command rather than a destructive one. A named volume survives down and is removed only by down -v.

    Running is not ready

    A container reporting healthy on process liveness alone will accept dependent services before Redis is answering. A healthcheck that runs redis-cli ping is the difference between a clean start and an intermittent failure on the first request.

    Cluster mode needs an announced address

    Nodes advertise the address they are configured with, so a client outside the Compose network receives an internal container IP it cannot reach. cluster-announce-ip and cluster-announce-port are what fix that, and the bus port must be published as well.

    This is for development

    The file has no password, no TLS and no resource limits, because they would be placeholders. It is a local development environment written to be safe on a laptop, not a production deployment.

    More redis tools

    Redis Hash Slot Calculator Which of the 16,384 slots does this key land in? Redis Hash Tag Tester Will these keys survive a multi-key command? Redis RESP Protocol Decoder Read what the server actually sent Redis RESP2 vs RESP3 Reply Decoder What the same reply looks like on each protocol Redis Command to RESP Exactly what your client puts on the socket Redis Glob Pattern Tester Redis globs are not shell globs Redis Connection URL Parser The path is the database number Redis Memory Unit Converter 1g and 1gb are not the same number Redis TTL Converter -1 and -2 are not durations Redis Stream ID Parser The first half is a millisecond timestamp redis.conf Validator Will Redis start with this file? Redis Production Config Linter The settings that cause incidents redis.conf to CONFIG SET Which of these can you change without a restart? Redis ACL Rule Decoder What does this user actually get? Redis ACL Validator Find the rule that does nothing Redis INFO Analyzer The numbers INFO does not print Redis SLOWLOG Analyzer What blocked everyone else Redis CLUSTER NODES Parser Read the topology, and find the gap Redis Cluster Slot Distribution Who owns how much, and what is missing Redis Keyspace Notification Flags Why your events never arrive Redis Memory Calculator The encoding decides, not the data Redis Key Count to Memory The fixed cost per key Redis Encoding Threshold Calculator One field more, several times the memory Redis Bitmap Memory Calculator Sized by the highest bit, not the set ones Redis HyperLogLog Calculator 12 KB whether you count a thousand or a billion Redis Cluster Sizing Only 60% of each node is usable Redis RDB and AOF Size Calculator The fork needs memory, not disk Redis Replication Bandwidth Calculator How long the backlog actually covers Redis Connection Pool Calculator More connections is not more throughput Redis Pipeline Calculator It removes round trips, not work Redis Cache Hit Rate Calculator 99% to 90% is ten times the backend load Redis Eviction Policy Simulator volatile- with no TTLs is noeviction Redis Cost Estimator Your rates, so nothing goes stale Redis Config File Generator A redis.conf with the reasons in it Redis ACL Generator A user that can do exactly one job Redis Maxmemory Config Generator The limit, and the headroom it needs Redis Persistence Config Generator How much you can afford to lose Redis Lua Script Generator Atomic, and short enough to stay that way Redis TLS Config Generator Encrypted, and the old port actually closed Redis Sentinel Config Generator Failover that can actually be authorised Redis Cluster Config Generator Three primaries, and the bus port open Redis Client Config Generator Timeouts on both sides, and a sane pool Redis MEMORY STATS Analyzer Which number actually matters Redis Bigkeys Output Analyzer Elements are not bytes Redis CLIENT LIST Analyzer Find the connection hurting you Redis LATENCY Report Analyzer An empty report may mean nothing was recorded Redis Keyspace Prefix Analyzer Which key family is growing Redis SET Command Builder A plain SET clears the TTL Redis ZRANGE Query Builder REV reverses the argument order Redis SCAN Iteration Planner COUNT is a hint, not a page size Redis Key Name Validator Legal is not the same as workable Redis Cluster Compatibility Checker Works now, breaks when you shard

    Elsewhere on the site