Redis
From Wikipedia:Redis:
- Redis is a software project that implements data structure servers. It is open-source, networked, in-memory, and stores keys with optional durability.
Contents
Installation
Start/enable redis.service
.
Client-side software
- Python: python-redis
- PHP: php-redis
Configuration
The Redis configuration file is well-documented and located at /etc/redis.conf
.
- By default, if no "bind" configuration directive is specified, Redis listens for connections from all the network interfaces. It may be preferred to allow only access on the host instead:
bind 127.0.0.1
- Accept connections on the specified port (default is 6379), specify
port 0
to disable listening on TCP:
port 6379
redis.service
and update the ExecStop
command accordingly. Either specify the port with -p
or the socket path with -s
.Listen on socket
Using Redis over a Unix socket may give a performance increase, compared to TCP/IP [1].
The following changes should be made in /etc/redis.conf
to enable use of the unix socket:
- Enable and update the Redis socket path:
unixsocket /run/redis/redis.sock
- Set permission to the socket to all members of the
redis
user group:
unixsocketperm 770
- Add users (e.g. git, http) to the
redis
user group so they can access and use the socket.
Finally restart the redis.service
.
Troubleshooting
Warning about Transparent Huge Pages (THP)
To solve warning messages as `you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis.`, you may want to permanently disable this feature:
/etc/tmpfiles.d/redis.conf
w /sys/kernel/mm/transparent_hugepage/enabled - - - - never w /sys/kernel/mm/transparent_hugepage/defrag - - - - never
Warning about TCP backlog
To solve warning messages as `The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.`, increase the current value:
/etc/sysctl.d/99-sysctl.conf
net.core.somaxconn=512
Warning about overcommit_memory is set to 0
To solve warning messages as `overcommit_memory is set to 0! Background save may fail under low memory condition`:
/etc/sysctl.d/99-sysctl.conf
vm.overcommit_memory=1