Когда использовать хранилище ключей / значений, такое как Redis, вместо базы данных SQL? - PullRequest
153 голосов
/ 24 сентября 2011

Я прочитал замечательные вещи о хранилищах ключей / значений, таких как Redis, но не могу понять, когда пришло время использовать его в приложении.

Скажем, я проектирую веб-приложение;Я знаю, какой стек я собираюсь использовать для внешнего интерфейса, внутреннего сервера, баз данных и т. Д., В каких случаях я бы сказал: «О, нам также нужен Redis для X, Y или Z».

Буду признателен за примеры как node.js, так и не-node.js.

Ответы [ 4 ]

93 голосов
/ 24 сентября 2011

Я не могу понять, когда пришло время использовать его в приложении.

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

Redis, однако, не является заменой NoSQL для классических реляционных баз данных, поскольку он не поддерживает многие стандартные функции мира RDBMS, такие как запросы ваших данных, которые могут замедлить их.Замена - это, скорее, базы данных документов, такие как MongoDB или CouchDB, и Redis отлично дополняет определенные функции, где удобна скорость и поддержка расширенных структур данных.

60 голосов
/ 19 ноября 2011

Я думаю, что ничто не объясняет лучше сценарии использования Redis, чем эта статья: http://antirez.com/post/take-advantage-of-redis-adding-it-to-your-stack.html

Бьюсь об заклад, у вас будет ага! момент . ;)

Цитата из предыдущего читателя:

Я читал о Redis раньше и слышал, как компании используют его, но так и не понял, зачем он нужен. Прочитав это, я могу сказать, что теперь понимаю Redis и насколько он полезен. Удивительно, что, услышав так много об этом, все это заняло довольно простую статью.

Цитата из статьи:

Redis отличается от других решений для баз данных во многих отношениях: он использует память в качестве поддержки основного хранилища и диск только для постоянного хранения, модель данных довольно уникальна, она однопоточна и так далее. Я думаю, что еще одно большое отличие состоит в том, что для того, чтобы воспользоваться преимуществами Redis в вашей производственной среде, вам не нужно переключаться на Redis. Вы можете просто использовать его для того, чтобы делать новые вещи, которые раньше были невозможны, или для решения старых проблем.

Примеры использования, к которым относится статья:

  • Медленные списки последних товаров на вашей домашней странице
  • Таблицы лидеров и связанные с ними проблемы
  • Порядок голосов и времени пользователя
  • Срок действия навесного оборудования истекает
  • Подсчет вещей
  • Уникальных N предметов за определенный промежуток времени
  • Анализ в реальном времени того, что происходит: статистика, защита от спама или что-то еще
  • Pub / Sub
  • Очередь
  • Кэширование
7 голосов
/ 21 декабря 2016
  • Я хотел бы использовать Redis в проектах в реальном времени.Я недавно сделал для одной системы отслеживания GPS, которая ранее была построена на MySQL в качестве базы данных.

    ADVANTAGE

    1. Каждый раз, когда трекер вещает данные, мне не нужно открывать MySQL соединение и хранитьв теме.Мы можем сохранить его на Redis, а затем перенести на MySQL, используя другой процесс.Это позволит избежать одновременного подключения от нескольких трекеров к MySQL.
    2. Я могу опубликовать все эти данные GPS, а другие клиенты (javascript / android) могут подписаться в режиме реального времени, используя очередь сообщений на основе redis
    3. Я могу активировать оповещения в режиме реального времени
2 голосов
/ 24 сентября 2011

Одно дело: Redis не является реляционной базой данных. Если вам понадобится SQL «JOIN», вам не нужно будет использовать Redis или любую другую нереляционную базу данных. Redis быстрее, чем большинство реляционных баз данных. Если вы собираетесь выполнять только пару ключей: значение, вам нужно использовать Redis.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...