Вступление
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].