Назад | Перейти на главную страницу

Elasticsearch как замена кэша памяти

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

Есть ли способ создать такое «универсальное ведро», которое могло бы вместить различные предметы без жалоб на эластичность? Из того, что я видел до сих пор, когда вы сохраняете элемент в первый раз, elastic автоматически создает тип для каждого ключа. Это может привести к проблемам, если вы попытаетесь сохранить другой элемент, для которого уже назначен ключевой эластичный элемент с другим значением.

Любой способ выполнить вышеуказанное?

С уважением

Elasticsearch - это поиск и индекс своего рода база данных, построенная и оптимизированная для поиска и аналитики, а не для кеширования.

В качестве кэширующего сервера вы должны использовать Memcached. Но в наши дни есть и другие альтернативы, такие как Redis (База данных ключ-значение), который работает намного быстрее и поддерживает более сложные решения. Карл Зулауф уже отлично описал различия между Redis и Memcached. здесь, в stackoverflow.

Хотя ответ remyseroos абсолютно правильный, я думаю, что есть случаи, когда ElasticSearch (-а) может стать отличной заменой для некоторых функций, предлагаемых серверами кеширования.

Например. представьте, что вы используете es в качестве уровня доступа для чтения для веб-приложения с упором на CRUD (и поиск). Es предоставляет быстрый REST API для данных, хранящихся в базе данных, которые вы предоставляете только для чтения, используя es в качестве кеша для базы данных. Вы бы загрузили базу данных, получили невероятно быстрый доступ через элегантный json REST API, который вам не нужно создавать самостоятельно.

Вот некоторые вещи, которые следует учитывать:

  • Обновляйте индекс es только при необходимости, так как обновления медленные и
  • используйте es bulk api везде, где это возможно, например когда
  • вам нужно перестроить свой индекс при развертывании, когда
  • вы используете индекс на основе памяти, чтобы ускорить время отклика.
  • Безопасность - это то, что нужно учитывать заранее, так как защита интерфейса es REST довольно сложна.

Фактически мы только что создали такое приложение, используя эластичный, поиск, транспорт, товары и до сих пор он отлично работает для нас.