Как использовать Redis с ElasticSearch

Я нашел NEST для ElasticSearch. Но я не понимал, как связаны отношения между Redis и ElasticSearch. Я создам социальную сеть и хотел бы знать, следует ли использовать некоторые части Redis и некоторые части ElasticSearch или их комбинацию. комбинированное использование.

Я использую C#, BookSleeve для Redis, ElasticSearch с NEST, ASP.NET MVC.


person Amir Movahedi    schedule 17.09.2013    source источник


Ответы (2)


Между этими двумя вещами нет ровно нулевой связи. Я подозреваю, что вы, возможно, ошиблись в предыдущем разговоре, когда вы хотели искать внутри отдельного значения в Redis для использования работы (этот вопрос: Как искать значение содержимого в Redis с помощью BookSleeve). Я пытался подчеркнуть, что это просто не функция Redis. Итак, у вас есть два варианта:

  • напишите свой собственный код извлечения слов (стеммер и т. д.) и создайте индекс вручную внутри Redis
  • используйте инструмент, который предназначен для того, чтобы сделать все это за вас

Такие инструменты, как ElasticSearch (который находится поверх lucene), хороши в этом.

Или, поставив вопрос другими словами:

  • X спрашивает: «Как мне разрезать дерево пополам отверткой?»
  • Y говорит "используй пилу"
  • Затем X спрашивает: «Как мне использовать отвертку с пилой, чтобы разрезать дерево пополам?»

Ответ: нет. Эти вещи не связаны.

person Marc Gravell    schedule 17.09.2013
comment
Redis быстрее или ElasticSearch? я не могу подключить Redis к ElasticSearch?java.dzone.com/articles/connecting-redis-elasticsearch - person Amir Movahedi; 17.09.2013
comment
Можно ли использовать оба в проекте? - person Amir Movahedi; 17.09.2013
comment
Может быть, я задал неправильный вопрос. Итак, если я правильно понимаю, мне нужно или я хочу использовать Redis или ElasticSearch? В чем разница между Redis и ElasticSearch? И каждый из них можно применить к социальной сети какой? - person Amir Movahedi; 17.09.2013
comment
@Amirhosseingholzam, что быстрее: молоток, отвертка или пила? поскольку они делают разные вещи: сравнение невозможно. Но да, вы можете использовать оба из них - person Marc Gravell; 17.09.2013
comment
@Amirhosseingholzam о разнице: Redis — это хранилище ключей и значений в памяти с некоторыми интересными функциями, а lucene/elastic-search — служба индексирования. - person Marc Gravell; 17.09.2013
comment
Большое спасибо за ответ. Итак, оба могут хранить данные в памяти, разница в индексации? руководство Redis, а другое - автоматический индекс? правильно!? - person Amir Movahedi; 17.09.2013
comment
У @amir Lucene больше инструментов для индексации текста, да - person Marc Gravell; 17.09.2013
comment
Извините за то, что смог правильно ответить. Это означает, что я могу использовать Lucene в Redis? стейкбиржа использует Redis для ...? и использовать ElasticSearch для...? - person Amir Movahedi; 17.09.2013
comment
@Amirhosseingholzam нет, вы не можете использовать lucene в Redis. Вы можете использовать два инструмента для двух разных работ. Мы используем Redis для вещей, которые хорошо работают в качестве хранилища на основе ключей / хэшей на основе ключей и т. Д., И lucene для поиска на основе текстового контента. - person Marc Gravell; 17.09.2013
comment
Я пришел к выводу, что данные должны быть доступны для поиска по тексту или данные только для чтения могут быть классифицированы. Группа I хранится в ElasticSearch, а группа II в Redis, правда ли это? - person Amir Movahedi; 18.09.2013
comment
@Amir Амир, у меня недостаточно информации, чтобы дать здесь простой ответ «да / нет»; моя цель - просто указать вам на соответствующие инструменты, чтобы вы могли принять собственное техническое решение / дизайн - person Marc Gravell; 19.09.2013

На самом деле Redis и Elasticsearch можно комбинировать весьма полезным способом; если вы отправляете данные в Elasticsearch из исходного потока, и этот поток данных внезапно взрывается и становится слишком большим объемом данных для вашего экземпляра Elasticsearch, он будет удалять данные. Однако если вы поместите экземпляр Redis перед Elasticsearch для кэширования данных, то ваш экземпляр Elasticsearch сможет пережить разрыв без потери данных, поскольку он будет кэширован в Redis.

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

person Shōgun8    schedule 10.01.2020
comment
данные будут удалены.! Любая ссылка на это? - person Alireza; 10.07.2020
comment
Да, есть ссылки на количество данных, которые может обрабатывать elasticsearch, и это конечное количество. Технические характеристики можно найти в руководстве по elasticsearch. - person Shōgun8; 10.07.2020
comment
Таким образом, под этим значением вы имели в виду, что вставка новых данных будет ограничена, верно? - person Alireza; 10.07.2020
comment
Нет. Пожалуйста, прочтите техническое руководство. Данные будут удалены и больше никогда не будут загружены. Никогда. Никогда. Никогда никогда никогда никогда никогда. - person Shōgun8; 10.07.2020