Как установить Redis Server в системах на базе CentOS и Debian
Redis — это высокопроизводительное и гибкое хранилище структур данных в памяти с открытым исходным кодом (формат «ключ-значение»), используемое в качестве базы данных, кэша и брокера сообщений. Он написан на ANSI C и работает на большинстве, если не на всех Unix-подобных операционных системах, включая Linux (рекомендуется для развертывания) без внешних зависимостей.
Он многофункциональный, поддерживает несколько языков программирования и структуры данных, включая строки, хеши, списки, наборы, отсортированные наборы с запросами диапазона, растровые изображения и другие.
Возможности Redis:
- Поддерживает большинство языков программирования, включая C, Bash, Python, PHP, Node.js, Perl, Ruby, и это лишь некоторые из них.
- Имеет встроенную репликацию, сценарии Lua, вытеснение LRU, транзакции, а также различные уровни сохранения на диске.
- Обеспечивает высокую доступность через Redis Sentinel и автоматическое секционирование через Redis Cluster.
- Поддерживает выполнение атомарных операций.
- Он работает с набором данных в памяти для достижения замечательной производительности.
- Поддерживает простую в настройке асинхронную репликацию «главный-подчиненный».
- Поддерживает автоматическое переключение при сбое.
- Позволяет нечасто сохранять набор данных на диск в течение заданного периода времени или путем добавления каждой команды в журнал.
- Позволяет опционально отключить сохранение.
- Поддерживает публикацию/подписку сообщений.
- Он также поддерживает транзакции MULTI, EXEC, DISCARD и WATCH и многое другое.
Требования:
- Сервер CentOS 7 и сервер RHEL 7 с минимальной установкой
- Сервер Ubuntu или сервер Debian с минимальной установкой
- Компилятор GCC и libc
В этом руководстве мы предоставим инструкции по установке сервера Redis из исходного кода (рекомендуемый метод) в Linux. Мы также покажем, как настраивать, управлять и защищать Redis. Поскольку Redis обслуживает все данные из памяти, в этом руководстве мы настоятельно рекомендуем использовать VPS-сервер с большим объемом памяти.
Шаг 1. Установите сервер Redis из исходного кода
1. Сначала установите необходимые зависимости сборки.
--------------- On CentOS / RHEL / Fedora ---------------
yum groupinstall "Development Tools"
dnf groupinstall "Development Tools"
--------------- On Debian / Ubuntu ---------------
sudo apt install build-essential
2. Затем загрузите и скомпилируйте последнюю стабильную версию Redis, используя специальный URL-адрес, который всегда указывает на последнюю стабильную версию Redis, с помощью команды wget.
wget -c http://download.redis.io/redis-stable.tar.gz
tar -xvzf redis-stable.tar.gz
cd redis-stable
make
make test
sudo make install
3. После компиляции Redis каталог src
внутри дистрибутива Redis заполняется различными следующими исполняемыми файлами, которые являются частью Redis:
- redis-server – сервер Redis.
- redis-sentinel – исполняемый файл Redis Sentinel (мониторинг и аварийное переключение).
- redis-cli – утилита CLI для взаимодействия с Redis.
- redis-benchmark – используется для проверки производительности Redis.
- redis-check-aof и redis-check-dump – полезны в редких случаях повреждения файлов данных.
Шаг 2. Настройка сервера Redis в Linux
4. Далее вам необходимо настроить Redis для среды разработки, которая будет управляться системой init (systemd для целей этого руководства). . Начните с создания необходимых каталогов для хранения конфигурационных файлов Redis и ваших данных:
sudo mkdir /etc/redis
sudo mkdir -p /var/redis/
4. Затем скопируйте предоставленный файл конфигурации шаблона Redis в каталог, который вы создали выше.
sudo cp redis.conf /etc/redis/
5. Теперь откройте файл конфигурации и обновите несколько настроек следующим образом.
sudo vi /etc/redis/redis.conf
6. Затем найдите следующие параметры, а затем измените (или используйте) их значения по умолчанию в соответствии с потребностями вашей локальной среды.
port 6379 #default port is already 6379.
daemonize yes #run as a daemon
supervised systemd #signal systemd
pidfile /var/run/redis.pid #specify pid file
loglevel notice #server verbosity level
logfile /var/log/redis.log #log file name
dir /var/redis/ #redis directory
Шаг 3. Создайте файл модуля Redis Systemd
7. Теперь вам нужно создать системный файл модуля для Redis, чтобы управлять демоном, выполнив следующую команду.
sudo vi /etc/systemd/system/redis.service
И добавьте конфигурацию ниже:
[Unit]
Description=Redis In-Memory Data Store
After=network.target
[Service]
User=root
Group=root
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always
Type=forking
[Install]
WantedBy=multi-user.target
Сохраните и закройте файл.
Шаг 4. Управление и тестирование сервера Redis в Linux
8. После того, как вы выполнили все необходимые настройки, вы можете запустить сервер Redis, а пока включите его автоматический запуск при загрузке системы; затем просмотрите его статус следующим образом.
sudo systemctl start redis
sudo systemctl enable redis
sudo systemctl status redis
9. Затем проверьте, работает ли вся настройка Redis нормально. Для взаимодействия с сервером Redis используйте команду redis-cli. После подключения к серверу попробуйте выполнить несколько команд.
redis-cli
Test connection to server using ping command:
127.0.0.1:6379> ping
Use the echo command to echo a given string:
127.0.0.1:6379> echo "Tecmint is testing Redis"
You can also set a key value using the set command like this:
127.0.0.1:6379> set mykey "Tecmint is testing Redis"
Now view the value of mykey:
127.0.0.1:6379> get mykey
10. Затем закройте соединение с помощью команды exit
и перезапустите сервер Redis. После этого проверьте, хранится ли mykey на сервере, как показано ниже:
127.0.0.1:6379> exit
sudo systemctl restart redis
redis-cli
127.0.0.1:6379> get mykey
11. Чтобы удалить ключ, используйте команду удаления следующим образом:
127.0.0.1:6379> del mykey
127.0.0.1:6379> get mykey
Шаг 5. Защита сервера Redis в Linux
12. Этот раздел предназначен для пользователей, которые собираются использовать сервер Redis, подключенный к внешней сети, например к Интернету.
Важно: доступ Redis к Интернету без какой-либо защиты делает его чрезвычайно простым для взлома; поэтому защитите сервер Redis следующим образом:
- блокировать подключения к порту Redis в системе с брандмауэром
- установить директиву привязки для интерфейса обратной связи: 127.0.0.1
- установите параметр requirepass, чтобы клиенты требовали аутентификации с помощью команды AUTH.
- настройте туннелирование SSL для шифрования трафика между серверами Redis и клиентами Redis.
Для получения дополнительной информации об использовании выполните команду ниже:
redis-cli -h
Вы можете найти дополнительные серверные команды и узнать, как использовать Redis в своем приложении, на домашней странице Redis: https://redis.io/
В этом руководстве мы показали, как установить, настроить, управлять и защитить Redis в Linux. Чтобы поделиться своими мыслями, используйте форму комментариев ниже.