Redis

Теги: queue  databases 

Резидентная система управления базами данных класса NoSQL с открытым исходным кодом, работающая со структурами данных типа «ключ — значение». Используется как для баз данных, так и для реализации кэшей и брокеров сообщений. Ориентирована на достижение максимальной производительности на атомарных операциях. Статья в вики

Используется совместно с [celery]. Тут описано как установить и конфигурировать

Можно из [docker]: docker run -d -p 6379:6379 redis

Установка и использование redis

Предлагаемый способ установки Redis — это компиляция из исходников, поскольку Redis не имеет никаких зависимостей, кроме работающего компилятора GCC и libc. Не рекомендуется устанавливать его с помощью менеджера пакетов вашего дистрибутива Linux, поскольку обычно доступная версия не является последней.

wget http://download.redis.io/redis-stable.tar.gz
tar xvzf redis-stable.tar.gz
cd redis-stable
make

Далее доступно:

  • redis-server сам сервер
  • redis-sentinel исполняемый файл Redis Sentinel (мониторинг и аварийное переключение)
  • redis-cli кли
  • redis-benchmark проверка производительности

Старт сервера:

$ redis-server
[28550] 01 Aug 19:29:28 # Warning: no config file specified, using the default config. In order to specify a config file use 'redis-server /path/to/redis.conf'
[28550] 01 Aug 19:29:28 * Server started, Redis version 2.2.12
[28550] 01 Aug 19:29:28 * The server is now ready to accept connections on port 6379
... more logs ...

Проверка работоспособности

$ redis-cli ping
PONG

Безопаснсость. Редис торчит в сеть и чтобы обеспечить безопасность надо проверить следующее:

  • Убедитесь, что порт, который Redis использует для прослушивания подключений (по умолчанию 6379 и дополнительно 16379, если вы запускаете Redis в кластерном режиме, плюс 26379 для Sentinel), защищен брандмауэром, чтобы невозможно было связаться с Redis из внешней сети
  • Используйте файл конфигурации, в котором установлена директива bind, чтобы гарантировать, что Redis прослушивает только те сетевые интерфейсы, которые вы используете. Например, только интерфейс (127.0.0.1), если вы получаете доступ к Redis только локально с того же компьютера и так далее
  • Используйте параметр requirepass, чтобы добавить дополнительный уровень безопасности, чтобы клиенты требовали аутентификации с помощью команды AUTH
  • Используйте ПО для туннелирования SSL, чтобы зашифровать трафик между серверами Redis и клиентами Redis, если ваша среда требует шифрования.

Использование редиса в приложении требует установки соответствующего коннектора для языка приложения.

Смотри еще:

redis-py - питоний интерфейс к редису