zoukankan      html  css  js  c++  java
  • legend3---28、缓存优化的几种策略

    legend3---28、缓存优化的几种策略

    一、总结

    一句话总结:

    1、数据库和缓存同时更新,用更新好的数据库来更新缓存,这种数据最准确:比如评论数量,比如用户点赞、收藏
    2、数据库和缓存同时更新,是同时更新数据库和更新缓存,不是用数据库来更新缓存(相比于上一种,少了一次查数据库的操作):
    3、只更新数据库不更新缓存,这种的话缓存存个一两分钟,一两分钟之后数据更新:比如首页,比如课程数据,比如视频数据

    1、要是可以定时刷新缓存中的内容到数据库就好了?

    那样我们只用修改缓存,缓存快失效的时候,用缓存中的数据去刷新数据库的数据就好

    2、代码写完之后一定要检测,要整理,也就是code review?

    一方面可以检查错误,另外一方面可以优化代码,整理代码

    3、首页并不适合那种修改了就做更新的缓存?

    首页适合过多少1分钟自动更新的缓存

    4、通过缓存,可以把数量转化为时间量?

    比如三十秒1000次访问,如果设置缓存,设置为三十秒,则就是把这1000次访问对应成了一次,而三十秒影响不到用户的操作和数据显示

    5、laravel在模型中查看请求的参数(比如缓存分页数据)?

    a、获取请求对象:$request = request();
    b、获取请求参数的数组(比如分页):$request = request()->toArray();

    6、缓存数字时候的判断不能是if($lesson_comment_num)?

    因为数字有可能是0,不为null可以这样判断

    7、缓存的时候,可以把公共的数据保存,差异化的数据直接从数据库中取就好了?

    比如视频页的视频数据,视频和章节的基本数据可以存缓存,但是每个人视频的观看记录可以直接从数据库中查

    8、缓存数据库数据到缓存的时候,要存数组,不要存数据库对象?

    比如缓存课程对应的博客,如果缓存数据库数据对象为27K,缓存数组只有11K,也要把一些不要用到的字段排除掉,比如blog的summary

    9、缓存数据的时候,缓存的数据的结果不要是null?

    因为我们判断缓存是否存在的时候判断的是这个缓存的结果是不是null,推荐缓存数组:if($lesson_chapters!==null)

    10、每一个ajax请求之前,都要进行用户session是否存在判断,因为用户很有可能是打开的页面之后过一会儿再进行的操作,比如吃饭,比如浏览器重新加载页面?

    因为这样可以避免用户登录这个页面很久之后,session失效,而报的错误

    二、内容在总结中

    博客对应课程的视频位置:

     
  • 相关阅读:
    JSP第二次作业
    软件测试课堂练习
    内容提供者读取短信信息
    购物车
    第六周jsp
    第四周jsp
    第一周 软件测试
    第八次安卓
    安卓第七次作业
    安卓第六次作业
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/12640519.html
Copyright © 2011-2022 走看看