Memcachedb против mongodb против couchdb с точки зрения решения для кэширования файлов?

StackOverflow https://stackoverflow.com/questions/2813204

Вопрос

Нам нужно кэшированиее решение, которое по существу, кэширует данные (текстовые файлы) в любом месте с 3 дней до недели на основе пользовательских настроек и критериев. В этом случае кэширование на основе памяти не имеет смысла для нас. Нам называли MEMCACHEDB, однако я также думал о некоторых решениях SQL.

Наше текущее приложение использует RDMS (MySQL), и я думаю, имеет смысл использовать MEMCACHEDB, однако NoSQL делает апелляцию, так как оно больше на горизонте. Однако мы не развернули приложение до уровня производства под NoSQL, а бета-материал не оседает с управлением / инвесторами. Любые как ваши мысли и как бы вы обратились к этому?

Спасибо

Это было полезно?

Решение

CouchDB и Mongodb являются оба отличными базами данных, но они являются ужасными вариантами для слоя кэша в верхней части существующих RDBMS. Помимо того, что они все еще довольно незрелые, они вообще не подходят. Кроме того, Speed-Wise, который вам лучше пойти без слоя кэша, чем использование CouchDB или Mongodb - они оба медленнее для простых чтения / пишетов, чем даже MySQL. Да, базы данных NoSQL «Cool», но это не значит, что вы должны использовать их для чего-то, что они не должны были сделать.

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

Другие советы

Если вы беспокоитесь об апелляции к управлению и инвесторам, а нынешняя система (вы упомяните MySQL), зачем вы изменились? Вы переходите из довольно стабильного проекта для проектов еще в бета-версии, и какое значение вы добавляете, если текущая система уже работает?

Как упоминалось выше, все ресурсы CouchDB содержат Etags.

Что не было упомянуто, что вы можете поставить Любые HTTP Caching Solution перед CouchDB и у него есть кэширование на основе Etag. Таким образом, вы можете использовать лак, Nginx, все, что вы хотите.

Я также посмотрел на Кассандра ( http://cassandra.apache.org/ ). Я пробовал Memcachedb и Couchdb, как-то нашел Кассандру, более привлекательным (не знаю, о PHP, так как я работаю с ColdFusion). Вот связанный вопрос Cassandra PHP модуль

CouchDB уже несколько кэширования: когда вы получаете документ, сервер также отправляет заголовок HTTP Etag (оно так же, как редакция документа в CouchDB).

В следующий раз, когда браузер просит тот же документ, который он отправляет полученный Etag. Если документ не был изменен, сервер отвечает с помощью HTTP-кода 304 не изменен И ваш браузер извлекает документ из его локального кэша.

Однако, если вам приходится кэшировать файлы в течение разных времен на основе пользовательских настроек, даже если текстовые файлы меняются, возможно, ваш лучший вариант - записать пользовательский код, который отправляет аппараты HTTP-кеширования на основе пользовательских настроек.

Для полноты еще один хороший вариант Редис. Отказ Вы получаете производительность, сопоставимые с memcache, но Redis также поддерживает различные структуры данных (хэши, списки, установки, отсортированные наборы) и атомные операции.

Если вы MeMCached с постоянством, вы должны проверить Redis. У него есть все функции Memecached (и более) наряду с настойчивостью.

Я не пробовал сам, но я помню, что читал, что Redis также поддерживал Memcached API.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top