Каковы основные варианты использования таких инструментов, как memchached и Redis? - PullRequest
1 голос
/ 19 марта 2011

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

После некоторого повторного исследованияЯ обнаружил следующие примеры использования для Redis , более трудные (безусловно, более медленные) для реализации в хранилище данных SQL:

  • Feeds или логика, похожая на хвост (последнее сообщение появляется сверху)
    Благодаря функциям управления списками в Redis:

      LPUSH post:<id>:comments <comment> //posts comment  
      LRANGE post:<id>:comments 0 9      // instantly gets last 10 comments 
    
  • Управление тегами
    Используя функции управления наборами Redis (и настройки взаимодействия), легко внедрить системы тегов

  • Таблицы результатов на высокопараллельном большом объемеservices
    Redis может вставлять оценки в O (log (N)) (то есть достаточно быстро), а затем использовать отсортированные наборы для извлечения табло, которые в SQL потребовали бы

      SELECT * FROM table
      ORDER BY score LIMIT 0 10 
    

Ответы [ 2 ]

1 голос
/ 19 марта 2011

Redis и Memcached - это хранилище данных в памяти. Основное отличие состоит в том, что Memcached не является постоянным (содержимое перезагружается при перезапуске сервера), а Redis -. Кроме того, Redis обеспечивает поддержку нескольких структур данных, таких как наборы.

Самым распространенным вариантом использования хранилища данных в памяти является кэширование. Memcached был любимым выбором в течение нескольких лет. Redis может решать практически все задачи Memcached с правильной конфигурацией.

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

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

Несколько примеров:

  • Resque - библиотека Ruby с поддержкой Redis для создания фоновых заданий
  • Hoptoad изменил инфраструктуру, чтобы использовать Redis в качестве быстрого хранилища для хранения пользовательских данных. Затем данные обрабатываются в MySQL.
0 голосов
/ 19 марта 2011

Я бы сказал, что основное использование этих баз данных "в памяти" (с точки зрения настройки производительности СУБД) предназначено для целей кэширования, даже этот веб-сайт использует Redis для кэширования . Вы можете найти некоторую информацию о том, как StackOverflow использует его здесь .

...