A missing blog post image

Introduction

I’ve just achieved one more Redis installation today, and as the previous ones, I had to browse the WEB again, looking for the same pieces of information.
You’ll find below my Redis-installation-memo (at least for me, in the future).

No slow listening TCP sockets. Only a hardened UNIX one.
No boot warnings. Only Linux kernel tweaks.
Not so many databases. Only what we usually need.
No hand-made Bash scripts for standalone program administration. Only a systemd-supervised instance.

A procedure powered by Debian :heart:

EDIT 2019-11-11 : This post has been updated, extending compatibility to Debian Buster !

EDIT 2021-08-07 : This post has been updated (again), according to Debian Bullseye new requirements. You may browse previous revisions of it here.

The procedure

apt install -y redis-server

systemctl stop redis-server.service

nano /etc/redis/redis.conf
: '
# ...
port 0
# ...
unixsocket /run/redis/redis-server.sock
unixsocketperm 770
# ...
supervised systemd
# ...
pidfile /run/redis/redis-server.pid
# ...
databases 1
# ...
requirepass <at-least-a-64-byte-long-random-string>
'

systemctl edit redis-server.service
: '
[Service]
Type=notify
TimeoutStartSec=infinity
# If running in non-cluster mode:
ProtectSystem=full
'

sysctl -w vm.overcommit_memory=1
echo 'vm.overcommit_memory = 1' > /etc/sysctl.d/redis.conf

echo "never" > /sys/kernel/mm/transparent_hugepage/enabled
nano /etc/default/grub
: '
# ...
GRUB_CMDLINE_LINUX_DEFAULT="[...] transparent_hugepage=never"
# ...
'
update-grub2

systemctl start redis-server.service

At this time the server should be up and running, you may want to check that everything went fine this way :

systemctl status redis-server.service
tail -f /var/log/redis/redis-server.log

For Redis usage from PHP-based applications you’ll need :

usermod -a -G redis www-data

# Using `mod_php` ?
systemctl restart apache2

# Using FPM ? 
systemctl restart php7.X-fpm

Conclusion

No conclusion. It should work, even for you, young Web-wanderer.