Подготовка
Для начала установите необходимые для компиляции зависимости.
$ sudo apt update
$ sudo apt install build-essential tcl gcc libc6-dev make
Установка и настройка
Поскольку исходный код не нужно долго хранить, загрузите его в /tmp каталог.
Перейдите во временный каталог:
$ cd /tmp
Загрузите архив. По данной ссылке всегда будет доступна последняя стабильная версия:
$ curl -O http://download.redis.io/releases/redis-stable.tar.gz
Затем распакуйте архив:
$ tar xzf redis-stable.tar.gz
Перейдите в каталог с исходным кодом:
$ cd redis-stable
Скомпилируйте двоичные файлы:
$ make
Затем выполните установку:
$ sudo make install
Теперь Redis установлен. Пришло время его настроить.
Создайте каталог, в котором будет храниться файл конфигурации:
$ sudo mkdir /etc/redis
Скопируйте файл конфигурации из каталога с исходным кодом:
$ sudo cp /tmp/redis-stable/redis.conf /etc/redis
Затем откройте файл в редакторе, чтобы внести кое-какие изменения:
$ sudo vim /etc/redis/redis.conf
Найдите директиву supervised и поменяйте ее значение на systemd:
supervised systemd
Далее найдите директиву dir и поменяйте ее значение на /var/lib/redis:
dir /var/lib/redis
Сохраните файл и закройте редактор.
Создание системного файла Redis
Чтобы можно было управлять Redis как службой, а так же автоматически запускать Redis после загрузки системы — создайте файл systemd.
Откройте в редакторе файл:
$ sudo vim /etc/systemd/system/redis.service
И внесите в него следующие данные:
[Unit]
Description=Redis In-Memory Data Store
After=network.target
[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always
[Install]
WantedBy=multi-user.target
Директивы User и Group указывают на то, под каким пользователем и группой будет запущена служба. В целях безопасности служба будет запущена не от root а от пользователя redis, которого вы создадите чуть позже.
Сохраните файл и закройте редактор.
Создание пользователя Redis и каталога для данных
Теперь необходимо создать системного пользователя с группой, под которым будет запускаться Redis.
Это можно сделать одной командой:
$ sudo adduser --system --group --no-create-home redis
Затем создайте каталог /var/lib/redis:
$ sudo mkdir /var/lib/redis
Сделайте пользователя redis владельцем этого каталога:
$ sudo chown redis:redis /var/lib/redis
И наконец, настройте права для каталога, чтобы обычные пользователи не имели к нему доступ:
$ sudo chmod 770 /var/lib/redis
Запуск и тестирование
Запустите службу systemd, выполнив:
$ sudo systemctl start redis
Проверьте, нет ли ошибок:
$ sudo systemctl status redis
Чтобы протестировать службу, подключитесь к серверу redis используя redis-cli:
$ redis-cli
Проверьте соединение, выполнив:
127.0.0.1:6379> PING
В ответ вы должны получить:
PONG
Затем установите ключ:
127.0.0.1:6379> set movie "Terminator 2: Judgment Day"
Получите значение ключа:
127.0.0.1:6379> get movie
В ответ вы должны получить значение, которое установили:
"Terminator 2: Judgment Day"
Чтобы вернуться назад в shell, выполните:
127.0.0.1:6379> exit
И в заключение проверьте, может ли Redis сохранять данные после остановки или перезапуска.
Перезапустите сервис:
$ sudo systemctl restart redis
А затем снова подключитесь к серверу и проверьте, сможете ли вы все еще получить значение установленного ключа:
$ redis-cli
127.0.0.1:6379> get movie
Вернитесь назад в shell, выполнив:
127.0.0.1:6379> exit
Убедившись, что служба работает, настройте ее на автоматический запуск при загрузке системы. Для этого выполните:
$ sudo systemctl enable redis
Заключение
Теперь Redis полностью настроен и готов к работе.