• Charles
    2019-08-26
    项目比较小,一般碰不到老师说的缓存风暴问题,但是能想到的就是主动缓存更新和前端取到缓存空值就加一个队列排队取
    
     1
  • witt
    2019-09-13
    接触到两种处理缓存的方式
    1. ehcache中有参数可以设置缓存最后一次访问后失效的时间,也就是说如果这个缓存一直在被访问就不会失效,直到这个缓存闲置时间超过设置的值,才会失效
    2. 设置二级缓存,读取数据首先从一级缓存读取,一级缓存不存在再用二级缓存里读取,二级缓存比一级缓存失效时间有个30s的延迟,也就是说一级缓存失效后30s二级缓存才失效,更新数据也是先更新一级缓存再更新二级缓存,但更新是没有30s这么长的延迟

    当然,这两种缓存都可以主动清理,第二种清理缓存的方式是先清理二级缓存再清理一级缓存
    展开
    
    
  • 鞋子特大号
    2019-09-06
    赞
    
    
  • helloworld
    2019-08-27
    老师,有没有写restful api的后端框架推荐?

    作者回复: 这里有很多 https://github.com/bungle/awesome-resty#web-frameworks,但都不流行😢

    
    
  • helloworld
    2019-08-27
    老师,为什么很多or的web框架只利用content_by_lua阶段?

    作者回复: 因为这样最简单直接,但并不推荐。一般我们把鉴权的放在 access 阶段,改写的放在 rewrite 阶段,这样逻辑上更清晰,后面也容易做拆分。

    
    
  • manatee
    2019-08-26
    想请问下老师,定时更新缓存,和缓存失效时被动查询数据库有什么区别呢

    作者回复: 定时更新需要处理各种异常,如果失败了是否要重试,重试多少次,逻辑会比较复杂;而被动更新就很简单了,失败了就使用过期数据,等着下一个请求再去更新就行了。

     1
    
  • 许童童
    2019-08-26
    如果不能接受过期数据,一个请求去查询数据库,其它请求没获取到锁,则持续等待,此时这个查询请求很耗时,会不会因为大流量把openResty压垮?

    作者回复: 终端用户的等待时间就变边长,服务端会维护很多并发连接,压垮 OpenResty 倒不至于。
    不能接受过期数据,这个其实是个伪命题,本来就是缓存,是允许和数据库的数据不同的。

     1
    
我们在线,来聊聊吧