开发者社区> 问答> 正文

缓存页面搜索的结果

项目中使用redis在service层缓存数据,但针对页面的搜索功能,如何针对搜索结果来定义缓存的key呢?个人觉得不同用户搜索的关键字习惯不同,如果以搜索的关键字作为缓存key的关键部分,会导致该缓存的命中率很低,失去了意义。但确实也没想到好的办法。求各位大神指教。

展开
收起
落地花开啦 2016-02-19 14:25:11 2298 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    对搜索词做一个计数统计,保存在数据库里(或者就保存在redis里),然后做一个排序,被搜索量最大的词(前20个),以搜索词为key,把搜索结果做value缓存起来,下次有人搜这个词直接取缓存数据。
    几点注意事项
    一,缓存过期时间不要太长,不然搜索结果实时性太差,
    二,只有搜了之后有结果的词才需要缓存,
    三,按搜索量排序寻找热门搜索词最好按时段,比如最近一个月最热门的词,把历史数据都算上统计总量的话,往往与实际偏差较大。

    2019-07-17 18:44:42
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
基于英特尔 SSD 的虚拟机缓存解决SSD 立即下载
用户态高速块缓存方案 立即下载
高性能Web架构之缓存体系 立即下载