mysql redis 搜索_我用Redis实现了一个轻量级的搜索引擎!

本文通过一个购物网站的复杂搜索条件为例,探讨如何利用MySQL和Redis优化查询接口。小A的复杂SQL在大数据量下表现不佳,小B通过拆分SQL和内存计算提升性能,但仍有查询延迟。小C提出将子维度结果集缓存到Redis,利用其集合操作提高查询速度,实现了类似反向索引的效果,解决了分页和数据更新问题,显著提升了查询效率。
摘要由CSDN通过智能技术生成

点击上方☝码猿技术专栏轻松关注!

及时获取有趣有料的技术文章

大家如果是做后端开发的,想必都实现过列表查询的接口,当然有的查询条件很简单,一条 SQL 就搞定了。

3264abccb3d7d982545bded81ca97151.png

图片来自 Pexels

但有的查询条件极其复杂,再加上库表中设计的各种不合理,导致查询接口特别难写,然后加班什么的就不用说了(不知各位有没有这种感受呢~)。

下面以一个例子开始,这是某购物网站的搜索条件,如果让你实现这样的一个搜索接口,你会如何实现?

当然你说借助搜索引擎,像 Elasticsearch 之类的,你完全可以实现。但我这里想说的是,如果要你自己实现呢?

28a0263adda1e92601ab4f6b047ae2c5.png

从上图中可以看出,搜索总共分为 6 大类,每大类中又分了各个子类。

这中间,各大类条件之间是取的交集,各子类中有单选、多选、以及自定义的情况,最终输出符合条件的结果集。

好了,既然需求很明确了,我们就开始来实现,关注公众号码猿技术专栏获取更多面试资源

实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值