【问题标题】:How to use Redis with ElasticSearch如何将 Redis 与 ElasticSearch 结合使用
【发布时间】:2020-01-11 03:57:55
【问题描述】:

我为 ElasticSearch 找到了 NEST。但是我没有意识到 Redis 和 ElasticSearch 之间的关系。我将建立一个社交网络,并想知道您是否应该使用 Redis 的某些部分和 ElasticSearch 的某些部分或它们的组合。我使用 Redis 的项目的哪些部分以及 ElasticSearch 使用的部分以及应该使用哪些部分结合使用。

我使用 C#、Redis 的 BookSleeve、带有 NEST 的 ElasticSearch、ASP.NET MVC

【问题讨论】:

    标签: c# redis elasticsearch nest booksleeve


    【解决方案1】:

    这两件事之间的关系完全为零。我怀疑你可能在之前的对话中搞错了,你想在 redis 中的单个值中搜索作品的用途(这个问题:How to search content value in redis by BookSleeve)。我试图说明的一点是,这根本不是 redis 的一个特性。所以你有两个选择:

    • 编写自己的单词提取代码(词干等)并在 redis 中手动构建索引
    • 使用专为您完成所有这些工作而设计的工具

    像 ElasticSearch(位于 lucene 之上)这样的工具在这方面做得很好。

    或者换个说法:

    • X 询问“我如何用螺丝刀将木头切成两半”
    • Y 说“用锯子”
    • X 然后问“我如何使用带锯子的螺丝刀将木头切成两半?”

    回答:你没有。这些东西没有关系。

    【讨论】:

    • Redis 更快还是 ElasticSearch 更快?我无法将 redis 连接到 ElasticSearch ?java.dzone.com/articles/connecting-redis-elasticsearch
    • 项目中可以同时使用吗?
    • 也许我问错了问题。所以如果我理解正确的话,我需要或想要使用 Redis 或 ElasticSearch? Redis 和 ElasticSearch 有什么区别?而这些中的每一个都可以应用于社交网络什么?
    • @Amirhosseingholzam 哪个更快:锤子、螺丝刀还是锯子?因为他们做不同的事情:无法进行比较。但是,是的,您可以同时使用它们
    • @Amirhosseingholzam 区别在于——redis 是一个内存键值存储,具有一些有趣的特性,而 lucene/elastic-search 是一个索引服务
    【解决方案2】:

    实际上 Redis 和 Elasticsearch 可以以一种非常有用的方式结合使用;如果您将数据从源流推送到 Elasticsearch,并且该数据流突然爆发并成为您的 Elasticsearch 实例无法摄取的太多数据,那么它将丢弃数据。但是,如果您在 Elasticsearch 前面放置一个 Redis 实例来缓存数据,那么您的 Elasticsearch 实例可以在突发事件中幸存下来而不会丢失数据,因为它将被缓存在 Redis 中。

    这只是一个例子,但还有更多。有关如何缓存查询的示例,请参阅 here

    【讨论】:

    • 它会丢弃数据。!这有什么参考吗?
    • 是的,有关于 elasticsearch 可以摄取的数据量的参考,它是有限的。技术规范可以在 elasticsearch 手册中找到。
    • 所以“它会掉线”是指插入新数据会受到限制,对吧?
    • 没有。请阅读技术手册。数据将被丢弃,不再被摄取。永远。永远。从未有过。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-04
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多