mash-playbook/docs/services/redis.md

3.4 KiB

Redis

Redis is an open source, in-memory data store used by millions of developers as a database, cache, streaming engine, and message broker.

We used to used to advocate for using Redis, but since Redis is now "source available" we recommend that you use KeyDB instead. KeyDB is compatible with Redis, so switching should be straightforward. You can learn more about the switch from Redis to KeyDB in this changelog entry for matrix-docker-ansible-deploy.

Some of the services installed by this playbook require a Redis data store.

Warning: Because Redis is not as flexible as Postgres when it comes to authentication and data separation, it's recommended that you run separate Redis instances (one for each service). Redis supports multiple database and a SELECT command for switching between them. However, reusing the same Redis instance is not good enough because:

  • if all services use the same Redis instance and database (id = 0), services may conflict with one another
  • the number of databases is limited to 16 by default, which may or may not be enough. With configuration changes, this is solveable.
  • some services do not support switching the Redis database and always insist on using the default one (id = 0)
  • Redis does not support different authentication credentials for its different databases, so each service can potentially read and modify other services' data

If you're only hosting a single service (like PeerTube or NetBox) on your server, you can get away with running a single instance. If you're hosting multiple services, you should prepare separate instances for each service.

Configuration

To enable this service, add the following configuration to your vars.yml file and re-run the installation process to host a single instance of the Redis service:

########################################################################
#                                                                      #
# redis                                                                #
#                                                                      #
########################################################################

redis_enabled: true

########################################################################
#                                                                      #
# /redis                                                               #
#                                                                      #
########################################################################

To host multiple instances of the Redis service, follow the Running multiple instances of the same service on the same host documentation or the Redis section (if available) of the service you're installing.