Что является лучшим решением для большого кэширования в Ruby? - PullRequest
1 голос
/ 20 января 2012

Я создаю REST API в Ruby с использованием JRuby + Sinatra поверх веб-сервера Тринидад.

Одной из функций API будет получение очень больших наборов данных из базы данных и их хранение на среднем уровне кэширования / нереляционной БД. Это для выполнения фильтра / сортировки / действий над этим набором данных без необходимости перестраивать его из базы данных.

Мы ищем хорошее / лучшее решение для реализации этого среднего уровня.

Мои мысли:

  • Использование нереляционной базы данных, такой как Riak, для хранения наборов данных и наличие слоя кэширования (например, Cache Money ) сверху.

Примечания:

  • Наши наборы данных могут быть довольно большими

1 Ответ

1 голос
/ 24 января 2012

Так как вы попросили мнение, я дам вам свое ... Я думаю, MongoDB подойдет для ваших нужд:

http://www.mongodb.org/

Я использовал его для хранения больших исторических наборов данных в течение пары лет, которые продолжают становиться все больше и больше, и это соответствует поставленной задаче. Мне даже не нужно было углубляться в «осколки» или некоторые дополнительные функции.

Причины, по-моему, подходящие для описываемого вами приложения:

  • Это индексированное хранилище документов без схемы, что означает, что оно может быть очень «динамичным» с добавлением или удалением полей
  • Я сравнил его производительность с некоторыми базами данных SQL для больших «плоских» данных, в некоторых случаях он работает на порядок лучше.
  • https://github.com/guyboertje/jmongo позволит вам получить доступ к MongoDB из JRuby
...