我刚开始学习Redis。我在笔记本电脑上安装了它并编写了一个简单的Java客户端。我有一个Elasticsearch实例来处理来自基于Web的应用程序的查询。它的速度非常快,但我想知道是否有一个实际案例,我可以用Redis“前置”弹性搜索实例,以加快客户端的响应时间。在我非常有限的redis知识中,我想知道在Redis中存储来自ES查询的响应是否实用,或者是否会提供任何价值?更一般地说,有人可以给我一个ES和Redis如何一起使用的例子。感谢
答案 0 :(得分:1)
在图片中使用Redis的一个用例是在通过Logstash将文档加载到Elasticsearch时将其用作temporary buffer。
由于Redis基本上是一个缓存,其主要目的是使数据快速可用,否则无法及时提供,因为您查询的后端服务速度不够快。既然你说你的Elasticsearch实例“非常快”(无论这意味着什么),你为什么要缓存响应呢?
此外,当您将缓存放入图片时,您还会遇到其他新问题,最重要的是,您如何使缓存过期,何时以及以何种频率过期?因此,如果您在Elasticsearch中的数据非常稳定,您可能会从缓存中受益。但是,如果您在Elasticsearch中的数据经常变化,那么您在Redis缓存中经常会遇到许多陈旧数据问题,而这是您不希望遇到的问题。
在我看来,花时间改进ES查询和映射以提供超快的数据比花费时间调整可能在1%的时间内有用的缓存更好。