美文网首页
Open Resty

Open Resty

作者: 养一只tom猫 | 来源:发表于2020-04-30 22:08 被阅读0次

    OpenResty是一个基于nginx的web平台,一台OpenResty理论上可承受1万到10万的并发,非常的强大。
    总的来说OpenResty就是集成了Nginx、可动态执行lua脚本的一款软件。
    那我们直接来点实在的,来一波使用OpenResty实现二级缓存。
    缓存能解决什么问题?

    加快访问速度,提升网站并发能力,提升用户体验,减少数据库访问压力。
    那么那些数据可以使用到缓存呢?比如网站首页的轮播图,广告图片等等等,很多地方都可以使用到缓存。

    进入正题:

    缓存预热&二级缓存

    缓存预热:缓存的预加载。预热即提前将数据库中数据先查询出来存入redis。

    image.png

    一级缓存:使用缓存直接查询redis返回数据。
    二级缓存:针对与同一份数据,缓存在两个地方。本地缓存则是进程自己的内存空间,进程结束即数据消失。redis缓存则是保存在redis服务中的内存中。
    多级缓存的意义:避免缓存雪崩,缓存穿透等问题
    二级缓存流程图:

    image.png

    具体缓存实现方案

    预热:Nginx暴露一个接口,实现缓存预热,访问这个接口执行加载缓存的lua脚本查询MySQL数据保存到redis。
    这部分具体是使用lua脚本查询数据库,具体lua脚本流程:连接mysql执行sql获取数据,把数据转json存入redis。
    这部分主要主要的是lua脚本,需要先与nginx种配置相关接口访问到具体的lua脚本,通过脚本查询数据库,再将缓存存入redis。最终lua脚本(是需要自己写的)会判断本地是否有缓存,如果有则直接访问本地,如果没有则查询redis。

    相关文章

      网友评论

          本文标题:Open Resty

          本文链接:https://www.haomeiwen.com/subject/rccxghtx.html