Redis

From ArchWiki
Jump to: navigation, search

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.

Installation

Install the redis package.

Start/enable redis.service.

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 listing on TCP:
port 6379 

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 group:
unixsocketperm 770
  • Create the directory which contains the socket:
# mkdir /run/redis
# chown redis:redis /run/redis
# chmod 755 /run/redis
  • Create a tmpfile to persist the directory which contains the socket:
/etc/tmpfiles.d/redis.conf
d /run/redis 0755 redis redis -
  • Add users (e.g. git, http) to the redis 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/local.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/redis.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/redis.conf
vm.overcommit_memory=1