-{ pkgs, lib, config, ... }:
-let
- inherit (config.networking) hostName;
- inherit (config.users) users;
-in
-{
-fileSystems."/var/lib/redis" = {
- device = "${hostName}/var/redis";
- fsType = "zfs";
-};
-services.redis = {
- enable = true;
- unixSocket = "/run/redis/redis.socket";
- databases = 16;
- syslog = true;
- bind = "127.0.0.1 ::1";
- settings = {
- unixsocketperm = "660";
- maxclients = 1024;
- maxmemory = "500mb";
- maxmemory-policy = "volatile-ttl";
- };
-};
-
-users.users.redis.group = "redis";
-users.groups."redis" = {};
-
-systemd.services.redis.serviceConfig = {
- RuntimeDirectoryMode = "0750";
- Group = users.redis.group;
-};
-
-# As suggested by redis in its logs
-boot.kernel.sysctl."vm.overcommit_memory" = 1;
-system.activationScripts.redis = ''
- echo never >/sys/kernel/mm/transparent_hugepage/enabled
-'';
-}