Задать вопрос
@semki096

Можно ли хранить данные в redis?

Начал читать о redis в реал тайм приложениях. Пока трудно даётся. Я к примеру по событию хочу разослать данные клиентам по сокету. Не могу до конца понять что именно делает redis в этой цепочке. Видимо принимает данные и раздает их по ключу?

Но вот собственно главный вопрос - можно ли и дальше хранить и получать эти данные из redis. К примеру у меня график в реальном времени. Мне надо гдето хранить старые координаты, чтобы загружать их вместе со страницей. И одновременно через сокеты отправлять клиентам обновлённые данные. Можно ли в redis хранить эти все данные? Ведь как я понял Redis хранит данные в оперативке? В мускуль писать данные не охота, хочется чтобы это быстро работало.
  • Вопрос задан
  • 1509 просмотров
Подписаться 2 Сложный Комментировать
Решения вопроса 1
AlexeiZhuravlev
@AlexeiZhuravlev
Можно.

Я в нескольких проектах(игры) использую Redis в качестве единственной базы данных. Некоторые экземпляры работают уже по 5 лет и полет вполне нормальный.

С определенной периодичностью Redis скидывает данные на диск. У меня это зависит от кол-ва изменений в базе за определенные промежутки времени.

У меня изначально была проблема с производительностью. Мне не хватало скорости редис. Слишком большое кол-во запросов было к базе. Я написал обертку на руби и стал складывать и читать данные из 8 баз редис, запущенных на одном физическом сервере. В современных версиях редиса такое шардирование уже есть из коробки.

Даже такая работа редис, когда данные размазаны на несколько баз не вызвала проблем за несколько лет эксплуатации.

У редис есть одна особенность, которая отсутствует у реляционных баз данных. Если вам надо удалить большое кол-во записей из базы(скажем несколько десятков миллионов), то сделать это придется с помощью десятков миллионов запросов к базе. В реляционной базе - пришлось бы выполнить одну команду. Поэтому чтобы не положить базу редис от такой нагрузки - приходится чистить базу с помощью отдельного скрипта, который создает постоянную небольшую нагрузку.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@RidgeA
Redis можно настроить сбрасывать данные на диск по определенным условиям (время, количество записей и т.п.)
Теоретически данные нужные можно хранить там, но надо понимать что Redis это все-таки "горячее" хранилище.
Можно там хранить данные но я бы все-таки использовал более надежное хранилище.
Самый простой вариант - Redis + MySQL, при этом в Redis хранить только данные которые нужны сейчас, остальное - в MySQL

Еще, как вариант, если это какие-то графики/метрики - можно использовать специализированную БД для временных данных, например InfluxDB и другие
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы