В этом руководстве мы рассмотрим установку и настройку хранилища Redis на виртуальном сервере Ubuntu 18.04.
Что такое Redis?
Redis – это система хранения данных в памяти, которая часто используется в качестве базы данных, кэша и брокера сообщений. Она поддерживает различные структуры данных, такие как строки, хэши, списки и наборы.
Преимущества Redis:
● Высокая скорость работы
● Redis используется такими крупными компаниями, как GitHub, Weibo, Pinterest, Snapchat, Craigslist, Digg, StackOverflow, Flickr
● Redis поддерживается практически всеми языками программирования, в том числе JavaScript, Java, Go, C, C++, C#, Python, Objective-C, PHP
● Исходный код Redis открыт для всех.
Установка и конфигурация Redis
Прежде чем начать установку Redis, убедитесь, что у вас есть права sudo.
Чтобы успешно установить Redis, необходимо обновить локальную базу пакетов. Выполните следующую команду в терминале:
sudo apt update -y && sudo apt upgrade -y
Для загрузки и установки Redis выполните следующую команду:
sudo apt install redis-server -y
С помощью текстового редактора, например vi, откройте конфигурационный файл, который генерируется автоматически:
sudo vi /etc/redis/redis.conf
Используя функцию поиска, найдите параметр "supervised" в конфигурационном файле. Этот параметр указывает на систему инициализации и по умолчанию установлен в значение "no". Замените это значение на "systemd":
supervised systemd
Перезагрузите СУБД:
sudo systemctl restart redis.service
Проверка Redis:
Чтобы проверить, что Redis сервер работает, выполните следующую команду:
sudo systemctl status redis
Результат:
● redis-server.service - Advanced key-value store
Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor pre
Active: active (running) since Thu 2023-10-15 16:31:06 MSK; 33min ago
Docs: http://redis.io/documentation,
man:redis-server(1)
Process: 25557 ExecStop=/bin/kill -s TERM $MAINPID (code=exited, status=0/SUCC
Process: 25561 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exi
Main PID: 25581 (redis-server)
Tasks: 4 (limit: 4715)
CGroup: /system.slice/redis-server.service
└─25581 /usr/bin/redis-server 127.0.0.1:6379
Now 15 16:31:06 Ubuntu2004x64 systemd[1]: Starting Advanced key-value store...
Now 15 16:31:06 Ubuntu2004x64 systemd[1]: redis-server.service: Can't open PID f
Now 15 16:31:06 Ubuntu2004x64 systemd[1]: Started Advanced key-value store.
Для проверки правильной работы Redis выполните подключение к серверу с помощью клиента командной строки:
redis-cli
Проверьте соединение, используя команду ping:
127.0.0.1:6379> ping
PONG
Если результатом команды было "PONG", это подтверждает установку соединения с сервером Redis. Далее убедитесь, что установка ключей Redis доступна.
127.0.0.1:6379> set test "mhost"
OK
Теперь получите заданное значение, также после перезапуска сервера значение должно сохраниться:
127.0.0.1:6379> get test
mhost
Чтобы выйти из клиента Redis, вы можете использовать сочетание клавиш Ctrl+C или команду:
127.0.0.1:6379> exit
Установка Пароля
Для улучшения безопасности хранилища рекомендуется установить пароль. Для этого необходимо открыть файл конфигурации:
sudo vi /etc/redis/redis.conf
Найдите строку:
# requirepass foobared
Раскомментируйте строку, убрав символ # в начале строки, и затем измените значение параметра "requirepass" на безопасный пароль в файле конфигурации:
requirepass <пароль>
Перезагрузите СУБД:
sudo systemctl restart redis.service
Для подключения к Redis с использованием пароля необходимо использовать ключ "a":
redis-cli -a <пароль>
Удаленное подключение:
Внимание: Redis очень часто подвергается взлому и не рекомендуется использовать внешний доступ на постоянной основе
Иногда удобно выполнять удаленное подключение к Redis. Чтобы разрешить удаленное подключение, откройте файл конфигурации:
sudo vi /etc/redis/redis.conf
Найдите строку:
# bind 127.0.0.1 ::1
Раскомментируйте соответствующую строку и замените адрес на "0.0.0.0", если вы хотите разрешить подключение с любого IP-адреса. Если вы хотите разрешить подключение только с определенного IP-адреса, укажите этот адрес вместо "0.0.0.0":
bind 0.0.0.0
Перезагрузите СУБД:
sudo systemctl restart redis.service
После внесения изменений в файл конфигурации и разрешения удаленного подключения, не забудьте открыть порт, на котором запущен сервер Redis, с помощью iptables:
Чтобы удаленно подключиться к Redis, используйте следующую команду:
redis-cli -h <ip адрес> -p <порт> -a <пароль>
Пример:
redis-cli -h 8.8.8.8 -p 6379 -a <пароль>