Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
<img src="//i.stack.imgur.com/RUiNP.png" height="16" width="18" alt="" class="sponsor tag img">elasticsearch 绝地武士的“前端”_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Redis - Fatal编程技术网 elasticsearch 绝地武士的“前端”,elasticsearch,redis,elasticsearch,Redis" /> elasticsearch 绝地武士的“前端”,elasticsearch,redis,elasticsearch,Redis" />

elasticsearch 绝地武士的“前端”

elasticsearch 绝地武士的“前端”,elasticsearch,redis,elasticsearch,Redis,我刚开始了解Redis。我把它安装在笔记本电脑上,并编写了一个简单的java客户端。我有一个Elasticsearch实例,它处理来自基于web的应用程序的查询。这相当快,但我想知道是否有一个实际案例,我可以用Redis“前置”elasticsearch实例,以加快客户端的响应时间。在我有限的redis知识中,我想知道将ES查询的响应存储在redis中是否可行,或者是否会提供任何价值?更一般地说,有人能给我举一个ES和Redis如何一起使用的例子吗。感谢在图片中使用Redis的一个用例是在通过L

我刚开始了解Redis。我把它安装在笔记本电脑上,并编写了一个简单的java客户端。我有一个Elasticsearch实例,它处理来自基于web的应用程序的查询。这相当快,但我想知道是否有一个实际案例,我可以用Redis“前置”elasticsearch实例,以加快客户端的响应时间。在我有限的redis知识中,我想知道将ES查询的响应存储在redis中是否可行,或者是否会提供任何价值?更一般地说,有人能给我举一个ES和Redis如何一起使用的例子吗。感谢

在图片中使用Redis的一个用例是在通过Logstash将文档加载到Elasticsearch时使用它

由于Redis基本上是一个缓存,它的主要目的是使数据快速可用,否则将无法立即可用,因为您查询的后端服务不够快。既然你说你的Elasticsearch实例非常快,不管这意味着什么,你为什么要缓存响应呢

此外,当您将缓存放入图片中时,会出现其他新问题,最重要的是,缓存如何过期,何时过期,以何种频率过期?因此,如果Elasticsearch中的数据非常稳定,您可能会从缓存中受益。但是,如果您在Elasticsearch中的数据经常更改,您经常会遇到Redis缓存中陈旧数据的许多问题,这是您不想遇到的问题


在我看来,花时间改进ES查询和映射以提供极快的数据要比花时间调整缓存要好得多,因为缓存可能在1%的时间内都很有用。

谢谢,这很有意义。我的想法是在redis中实现一个简单的缓存,将搜索字符串存储为键,将响应存储为值。因此,从前端来看,如果有人执行搜索,它会首先点击redis,查看以前是否运行过相同的查询,如果是,则返回以前的结果,如果不是,则点击ES。我只是不确定这有多实际。是的,但是如果您的数据发生变化,对以前搜索的响应可能已经改变,缓存的可能不再准确。这就是缓存的全部问题,即了解缓存数据是否过时以及何时过时,并将其清除。