关于快速缓存搜索有什么好的妙招?

@JFinal 波神好,有个问题一直得不到解决,望支招。

我要实现这个快速搜索功能

QQ截图20190519084355.png

我这个是材料表,材料表中有主要字段【门店】,这个需要分门店搜索的,比如,A门店登录后,只能搜索A门店的材料。

当前是使用select * from table where 门店=门店ID and (X=key or X2=key or X3=key) 方式,X为多字段,但这样很频繁的去与数据库读取数据,感觉不是很良好。

也曾试过,将将这个表缓存到Cache中,然后从Cache中取出List,但在从List中搜索数据时,感觉比前一种方式更慢,更不好使。

又研究过Redis,感觉跟第二种方法差不多,速度没有提升。

当前还是使用第一种方法,直接从数据库读取。


请问下波总或者各路英雄有什么好的建议,要实现快速搜索,不卡顿,而且数据是实时更新的,比如库存数量、价格等。

但愿在这里能找到解决方案。

评论区

JFinal

2019-05-19 12:00

这个问题可大可小,看你的数据规模,如果数据量小,用普通的查询与缓存就好

如果规模很大,找找现成的方案,甚至自己写算法

根据自己的场景选择适合的就好,做技术的切忌做着 10 万数据量的事,操着亿级数据量的心

北流家园网

2019-05-19 16:54

@JFinal 现在就是没找到好的解决方案,遇到问题了,用着不习惯,前台输入关键词的时候,会出现卡顿,列表显示不够快,想找更好的解决方案。

山东小木

2019-05-20 15:35

如果你数据量不大 按照波总说的 直接数据库查询就好了,顶多 你在查询的地方做一下缓存处理,相同的关键词 查询过之后 返回的数据做个缓存,一般这种场景 查东西比较精确的,可以只返回10条数据内就包含最想要的结果,缓存起来就OK啦。 或者使用ElasticSearch全文检索,这个就是麻烦点,但是速度挺快的,只不过需要你们架构上调整 数据量小其实没必要的。

热门反馈

扫码入社