Redis
Теги: queue data-bases bd
Резидентная система управления базами данных класса 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 Redis Python Client
- redis-om-python Object mapping, and more, for Redis and Python
- redis docker
- bitnami/redis docker
- [celery]
- [python-rq]
- [rabbitmq]
- [apache-kafka]
- How to use Redis Pub/Sub in your Python Application
- How to create a redis cloud connection url with an auth password
redis-py - питоний интерфейс к редису