Как установить Redis из исходного кода на Ubuntu 18.04

Вступление

Redis - это хранилище ключей-значений в памяти, известное своей гибкостью, производительностью и широкой поддержкой языков. Он обычно используется в качестве базы данных, кэша и посредника сообщений и поддерживает широкий спектр структур данных.

Из этого туториала Вы узнаете, как установить и настроить Redis из исходного кода на сервере Ubuntu 18.04. Обратите внимание, что Redis можно установить за меньшее количество шагов, загрузив и установив его через официальные репозитории Ubuntu. Чтобы установить Redis с использованием этого метода, см. Наше руководство по адресу Как установить и Безопасный Redis в Ubuntu 18.04.

Предпосылки

Чтобы завершить это руководство, вам потребуется доступ к серверу Ubuntu 18.04, настроенному следующим образом: this начальная настройка сервера руководство, включая пользователя без полномочий root с правами + sudo + и брандмауэр.

Когда вы будете готовы начать, войдите на свой сервер Ubuntu 18.04 с вашим пользователем + sudo + и продолжайте ниже.

Шаг 1 - Установка зависимостей сборки и тестирования

Чтобы получить последнюю версию Redis, мы скомпилируем и установим программное обеспечение из исходного кода. Однако перед загрузкой исходного кода вы должны удовлетворить зависимости сборки, чтобы можно было скомпилировать программное обеспечение.

Для этого установите метапакет + build-essential + из репозиториев Ubuntu. Кроме того, загрузите пакет + tcl +, который вы можете использовать для тестирования двоичных файлов.

Обновите локальный кеш пакета + apt + и установите зависимости, набрав:

sudo apt update
sudo apt install build-essential tcl

При этом все зависимости сборки и тестирования установлены на вашем сервере, и вы можете начать процесс установки Redis.

Шаг 2. Загрузка, компиляция и установка Redis

После установки его зависимостей вы готовы установить Redis, загрузив, скомпилировав, а затем собрав исходный код. Поскольку вам не нужно хранить исходный код Redis в течение длительного времени (вы всегда можете повторно загрузить его), загрузите исходный код в каталог + / tmp +.

Начните с перехода в этот каталог:

cd /tmp

Затем используйте + curl + для загрузки последней стабильной версии Redis. Последнюю версию всегда можно найти по адресу a стабильный URL-адрес загрузки:

curl -O http://download.redis.io/redis-stable.tar.gz

Распакуйте архив, набрав:

tar xzvf redis-stable.tar.gz

Затем перейдите в только что извлеченную структуру каталогов исходного кода Redis:

cd redis-stable

Скомпилируйте исполняемые файлы Redis, набрав:

make

После завершения компиляции двоичных файлов запустите тестовый набор, чтобы убедиться, что все собрано правильно:

make test

Обычно это занимает несколько минут, чтобы закончить. После завершения теста установите двоичные файлы в систему, набрав:

sudo make install

Вот и все, что нужно для установки Redis, и теперь вы готовы приступить к его настройке. Для этого вам необходимо создать каталог конфигурации. Конфигурационный каталог Redis обычно находится в каталоге + / etc / +, и вы можете создать его там, набрав:

sudo mkdir /etc/redis

Затем скопируйте образец файла конфигурации Redis, который был включен в исходный архив Redis:

sudo cp /tmp/redis-stable/redis.conf /etc/redis

Откройте файл в предпочитаемом вами текстовом редакторе, чтобы внести несколько изменений в конфигурацию:

sudo nano /etc/redis/redis.conf

Внутри файла найдите директиву + supervised +. Эта директива позволяет вам объявить систему инициализации для управления Redis как сервис, предоставляя вам больший контроль над его работой. По умолчанию директива + supervised + установлена ​​в + no +. Поскольку вы работаете в Ubuntu, который использует систему systemd init, измените это на + systemd +:

/etc/redis/redis.conf

. . .

# If you run Redis from upstart or systemd, Redis can interact with your
# supervision tree. Options:
#   supervised no      - no supervision interaction
#   supervised upstart - signal upstart by putting Redis into SIGSTOP mode
#   supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
#   supervised auto    - detect upstart or systemd method based on
#                        UPSTART_JOB or NOTIFY_SOCKET environment variables
# Note: these supervision methods only signal "process is ready."
#       They do not enable continuous liveness pings back to your supervisor.
supervised

. . .

Затем найдите директиву + dir +. Эта опция указывает каталог, который Redis будет использовать для выгрузки постоянных данных. Вам нужно изменить это место, где Redis будет иметь права на запись, и который не будет виден обычным пользователям.

Для этого используйте каталог + / var / lib / redis +; вы создадите этот каталог и настроите его права доступа позже на шаге 4:

/etc/redis/redis.conf

. . .

# The working directory.
#
# The DB will be written inside this directory, with the filename specified
# above using the 'dbfilename' configuration directive.
#
# The Append Only File will also be created inside this directory.
#
# Note that you must specify a directory here, not a file name.
dir

. . .

Сохраните и закройте файл, когда вы закончите.

Это все изменения, которые необходимо внести в файл конфигурации Redis, но есть еще несколько шагов, которые необходимо выполнить - например, настройка Redis для запуска в качестве службы и создание выделенного пользователя и группы - перед началом использования Это.

Шаг 3 - Создание системного файла Redis

Чтобы иметь больше контроля над управлением Redis, вы можете создать системный файл systemd, который позволит ему функционировать в качестве службы systemd. Это также поможет облегчить запуск Redis при загрузке вашего сервера.

Для начала создайте и откройте файл + / etc / systemd / system / redis.service +:

sudo nano /etc/systemd/system/redis.service

Оказавшись внутри, начните раздел + [Unit] +, добавив описание службы и определив требование, что сеть должна быть доступна до ее запуска:

/etc/systemd/system/redis.service

В разделе + [Service] + вы указываете поведение службы. В целях безопасности вы не должны запускать эту службу как * root *. Вместо этого вам следует использовать выделенного пользователя и группу, и для простоты вы можете вызвать оба этих * redis *. Вы создадите это на мгновение.

Чтобы запустить службу, вам просто нужно вызвать двоичный файл + redis-server + и указать его в своей конфигурации. Чтобы остановить его, используйте команду Redis + shutdown +, которую можно выполнить с помощью двоичного файла + redis-cli +. Кроме того, поскольку желательно, чтобы Redis восстанавливался после сбоев всякий раз, когда это возможно, установите директиву + Restart + в + always +:

/etc/systemd/system/redis.service

[Unit]
Description=Redis In-Memory Data Store
After=network.target

Наконец, добавьте раздел + [Install] +. Там определите цель systemd, к которой должна подключиться служба, если она включена (это означает, что она настроена на запуск при загрузке):

/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

Сохраните и закройте файл, когда вы закончите.

Файл модуля Redis systemd полностью готов. Однако прежде чем его можно будет использовать, вы должны создать выделенного пользователя и группу, на которую вы ссылаетесь, в разделе + [Service] + и предоставить им разрешения, необходимые для работы.

Шаг 4 - Создание пользователя, группы и каталогов Redis

Последнее, что вам нужно сделать перед запуском и тестированием Redis, - это создать пользователя, группу и каталог, на которые вы ссылались в предыдущих двух файлах.

Начните с создания пользователя * redis * и группы. Вы можете сделать это одной командой, набрав:

sudo adduser --system --group --no-create-home redis

Затем создайте каталог + / var / lib / redis + (на который есть ссылка в файле + redis.conf +, который вы создали на шаге 2), набрав:

sudo mkdir /var/lib/redis

Дайте + redis + пользователю и группе право собственности на этот каталог:

sudo chown redis:redis /var/lib/redis

Наконец, настройте разрешения, чтобы обычные пользователи не могли получить доступ к этому местоположению:

sudo chmod 770 /var/lib/redis

Вы поместили все компоненты, необходимые Redis для работы. Теперь вы готовы запустить службу Redis и проверить ее функциональность.

Шаг 5 - Запуск и тестирование Redis

Запустите службу systemd, набрав:

sudo systemctl start redis

Проверьте, что сервис не имеет ошибок, запустив:

sudo systemctl status redis

Это произведет вывод, подобный следующему:

Output● redis.service - Redis In-Memory Data Store
  Loaded: loaded (/etc/systemd/system/redis.service; disabled; vendor preset: enabled)
  Active: active (running) since Tue 2018-05-29 17:49:11 UTC; 4s ago
Main PID: 12720 (redis-server)
   Tasks: 4 (limit: 4704)
  CGroup: /system.slice/redis.service
          └─12720 /usr/local/bin/redis-server 127.0.0.1:6379
. . .

Чтобы проверить, правильно ли работает ваша служба, подключитесь к серверу Redis с помощью клиента командной строки:

redis-cli

В появившейся подсказке проверьте соединение, набрав:

ping

Это вернет:

OutputPONG

Затем проверьте, что вы можете установить ключи, набрав:

set test "It's working!"
OutputOK

Получите значение + test +, набрав:

get test

Вы должны быть в состоянии получить значение, которое вы сохранили:

Output"It's working!"

Убедившись, что вы можете получить значение, выйдите из приглашения Redis, чтобы вернуться в оболочку:

exit

В качестве заключительного теста мы проверим, может ли Redis сохранять данные даже после их остановки или перезапуска. Для этого сначала перезапустите экземпляр Redis:

sudo systemctl restart redis

Затем снова подключитесь к клиенту и подтвердите, что значение вашего теста все еще доступно:

redis-cli
get test

Значение вашего ключа все еще должно быть доступно:

Output"It's working!"

Выйдите в оболочку снова, когда вы закончите:

exit

Предполагая, что все эти тесты сработали, и что вы хотите запускать Redis автоматически при загрузке сервера, включите службу systemd:

sudo systemctl enable redis
OutputCreated symlink from /etc/systemd/system/multi-user.target.wants/redis.service to /etc/systemd/system/redis.service.

При этом ваша установка Redis полностью работоспособна.

Заключение

В этом руководстве вы установили, скомпилировали и собрали Redis из его исходного кода, настроили его для работы в качестве службы systemd и подтвердили, что ваша установка Redis работает правильно. В качестве следующего следующего шага мы настоятельно рекомендуем вам обезопасить установку Redis, следуя нашему руководству на https://www.digitalocean.com/community/tutorials/how-to-secure-your-redis-installation-on- ubuntu-18-04 [Как обезопасить вашу установку Redis в Ubuntu 18.04].

Related