[ Home ]

Redis 4.0.2 Compile Install

Super-condensed Redis 4.0.2 compilation and installation instructions!

$ su -
# apt install build-essential tcl
# addgroup --gid 1003 redis
# adduser --home /home/redis --uid 1003 --gid 1003 --disabled-password redis
# cd /usr/local/src
# wget http://download.redis.io/releases/redis-4.0.2.tar.gz
# tar -xzvf redis-4.0.2.tar.gz
# cd redis-4.0.2
# make
# make test
# make PREFIX=/usr/local/redis-4.0.2 install
# mkdir /usr/local/redis-4.0.2/conf
# mkdir /usr/local/redis-4.0.2/data
# cp redis.conf /usr/local/redis-4.0.2/conf

Startup logo is pretty but it clutters logs

# sed -i -e 's/^always-show-logo yes$/always-show-logo no/' /usr/local/redis-4.0.2/conf/redis.conf

Redis will play nice with systemd

# sed -i -e 's/^supervised no$/supervised systemd/' /usr/local/redis-4.0.2/conf/redis.conf

When Redis is asked to store data, it will store it in the data dir...

# sed -i -e 's/^dir \.\/$/dir \/usr\/local\/redis-4.0.2\/data/' /usr/local/redis-4.0.2/conf/redis.conf

... but Redis will be asked to not save data to disk, and run in memory only:

# sed -i -e 's/^save 900 1$/# save 900 1/' /usr/local/redis-4.0.2/conf/redis.conf
# sed -i -e 's/^save 300 10$/# save 300 10/' /usr/local/redis-4.0.2/conf/redis.conf
# sed -i -e 's/^save 60 10000$/# save 60 10000/' /usr/local/redis-4.0.2/conf/redis.conf

Be sure the redis user has permissions to the redis installation dir:

# chown -R redis:redis /usr/local/redis-4.0.2

Create a systemd service file for Redis:

# cat > /etc/systemd/system/redis.service
[Unit]
Description=Redis
After=network.target

[Service]
User=redis
Group=redis
ExecStart=/usr/local/redis-4.0.2/bin/redis-server /usr/local/redis-4.0.2/conf/redis.conf
ExecStop=/usr/local/redis-4.0.2/bin/redis-cli shutdown
Restart=always

[Install]
WantedBy=multi-user.target
^D

Reload systemd and test the systemd script for Redis:

# systemctl daemon-reload
# systemctl start redis
# systemctl status redis
# systemctl stop redis

Make redis start on system boot:

# systemctl enable redis

Note that this is a bar minimum installation. We have done nothing to address warnings on:

  • transparent huge pages,
  • tcp backlog setting (/proc/sys/net/core/somaxconn)
  • adding vm.overcommit_memory = 1 to /etc/sysctl.conf