【问题标题】:Both ElasticSearch and Redis, overkill usecase?ElasticSearch 和 Redis 都是过分的用例?
【发布时间】:2018-10-03 04:45:16
【问题描述】:

我目前正在设计我的项目的架构,或者至少尝试弄清楚什么对我的情况有用。

** 简单用例 我将在后端拥有数千个配置文件,并且我需要实现一个快速搜索引擎。所以在这种情况下,elasticsearch 看起来很完美。每次更新配置文件时,都会通过异步任务更新索引。

我现在的问题是:如果我想为配置文件的详细信息实现缓存系统。我应该坚持使用弹性搜索并将这些数据放在我的索引中吗?或者使用 Redis 并执行类似 profil_id => data 之类的操作?

我认为两者听起来都不错,但问题是每当更新配置文件时,我必须在弹性搜索中重新索引后刷新它。如果我想在我的后端看到变化。

那我该怎么办?非常感谢!

【问题讨论】:

  • 个人资料的更新频率。用户​​群将是什么
  • 我不能确切地说,但我会说经常因为有很多标准,这取决于但让我们说至少每周一次可以确定。 500 000-1m 用户
  • 要求个人资料详细信息的频率如何?配置文件详细数据是一些聚合数据还是只是来自 ElasticSearch 的文档?
  • 感谢您的所有回答。 每次都需要个人资料,只是第二个问题的文件

标签: elasticsearch caching redis redisearch


【解决方案1】:

您应该考虑使用RediSearch。使用 RediSearch 可以为您提供满足您需求的解决方案,同时获得 Redis 性能和全文支持。

【讨论】:

    【解决方案2】:

    Elasticsearch 和 redis 基本上是为了解决两个不同的问题,一个是索引,另一个是缓存。 Redis 旨在尽快返回已请求的数据,而 Elasticsearch 是一个搜索和分析引擎,它非常适合您必须实现快速搜索引擎的用例,并且它比任何内存数据结构存储或缓存(例如 redis)都具有更高的性能>(假设您的搜索会很复杂,将涉及一些聚合/过滤器)。

    问题来自个人资料更新 由于您的个人资料更新不是那么频繁,您实际上可以对 ES 索引进行部分更新而不是重新索引。因此,每当一个人更新其个人资料时,都会获取更改集(更改的数据)并进行部分更新到 ES 索引中的特定文档。你可以在这里看到它是如何完成的partial update

    这个特定的 stackoverflow 答案将帮助您cache vs indexing

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-10
      相关资源
      最近更新 更多