Valkey is a flexible distributed key-value datastore that is optimized for caching and other realtime workloads.
Some of the services installed by this playbook require a Valkey data store.
Warning: Because Valkey is not as flexible as Postgres when it comes to authentication and data separation, it's recommended that you run separate Valkey instances (one for each service). Valkey supports multiple database and a SELECT command for switching between them. However, reusing the same Valkey instance is not good enough because:
- if all services use the same Valkey 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 KeyDB database and always insist on using the default one (id = 0)
- Valkey 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.
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 KeyDB service:
########################################################################
# #
# valkey #
# #
########################################################################
valkey_enabled: true
########################################################################
# #
# /valkey #
# #
########################################################################
To host multiple instances of the Valkey service, follow the Running multiple instances of the same service on the same host documentation or the Valkey section (if available) of the service you're installing.