记一次缓存在实际中的应用

一、需求

       最近公司平台升级,考虑到性能问题领导让一些热点数据做缓存,而产品和运营则要求用户在进入某一列表后下拉更多的时候,假如后台数据发生改变,当前用户数据不能改变。

      举例:用户看视频列表:当前库里排序 1,2,4,3,6,5;以上数字代表某个视频列表

      用户A进行该视频页,假设分页长度为2,目前用户看到的视频列表:1,2;正常情况下用户点击更多时应该显示4,3;这时用户手机列表显示的是1,2,4,3;但 在用户点击更多时数据库数据发生变化1,9,2,4,3,6,5;新增了一条数据9,这种情况下如何直接从数据库获取数据,用户界面列表会这样显示,1,2,2,4;产品和运营认为很不合理,领导就开始跟运营撕逼。最后官司打到老板,老板拍板结果你懂得。

 

二、解决方案

     1)数据缓存,这是必须的。

     2) 考虑用户不会查看多页之后的数据,我们可以这样做,先从数据库拿指定限制长度的数据放入缓存;用户取数据时如果缓存有数据就从缓存取,没有则在数据库取。

     3) 代码尽量无侵入,切面最好的实现方式。

         说话容易撸码难;看实现吧。

三、流程

三、代码

https://gitee.com/benxiaohai52/cache-page.git

该框架经过测试,且在线上项目使用,由于时间原因,代码还俱有一定的侵入性。后续会逐渐改造

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章