Установка Redis из исходного кода на Ubuntu 18.04
Введение
Redis — это key-value хранилище, которое хранит данные в оперативной памяти. Отличается производительностью и гибкостью. Используется в основном как хранилище для кеша или других временных данных.
Из этой статьи вы узнаете как установить Redis из исходного кода на Ubuntu 18.04.
Подготовка
Для начала установите необходимые для компиляции зависимости.
$ 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 полностью настроен и готов к работе.