SpringCloud-高级篇(十七)

(1)添加Redis缓存 -缓存预热

前面实现了openResty查询tomcat,但是缓存架构是,先查询Redis,Redis没有在查询tomcat,下面实现Redis的缓存功能了:

SpringCloud-高级篇(十七)_第1张图片

SpringCloud-高级篇(十七)_第2张图片

--appendonly yes  运行的时候基于日志的方式做数据的持久化 

SpringCloud-高级篇(十七)_第3张图片

daocker运行Redis:

SpringCloud-高级篇(十七)_第4张图片

这个时候就可以使用Redis客户端连接了 

SpringCloud-高级篇(十七)_第5张图片

初始化类的时候需要实现一个InitialializingBean,需要实现里面的一个方法,afterPropertiesSet方法,会在这个类创建之后,成员变量初始化之后@Autowire注入以后去执行,需要在这个方法的内部初始化缓存的业务逻辑,就能实现项目已启动就能做初始化

SpringCloud-高级篇(十七)_第6张图片

SpringCloud-高级篇(十七)_第7张图片

创建初始化类:

SpringCloud-高级篇(十七)_第8张图片

SpringCloud-高级篇(十七)_第9张图片

Spring中有一个json的处理工具,将对象可以转为json,ObjectMapper:

SpringCloud-高级篇(十七)_第10张图片

启动一个tomcat:启动的时候就会写入到Redis当中了

SpringCloud-高级篇(十七)_第11张图片

SpringCloud-高级篇(十七)_第12张图片

SpringCloud-高级篇(十七)_第13张图片

(2)查询Redis缓存

SpringCloud-高级篇(十七)_第14张图片 

SpringCloud-高级篇(十七)_第15张图片

redis.lua在resty目录下,引入的时候需要就加resty 

SpringCloud-高级篇(十七)_第16张图片

SpringCloud-高级篇(十七)_第17张图片

在commmen.lua中封装函数:

SpringCloud-高级篇(十七)_第18张图片

SpringCloud-高级篇(十七)_第19张图片

SpringCloud-高级篇(十七)_第20张图片

引入函数 

SpringCloud-高级篇(十七)_第21张图片

SpringCloud-高级篇(十七)_第22张图片

item.lua封装逻辑函数

SpringCloud-高级篇(十七)_第23张图片

修改查询函数:

SpringCloud-高级篇(十七)_第24张图片

重启nginx

先把tomcat停掉:

SpringCloud-高级篇(十七)_第25张图片 如果还能岔村出来它走得就是查询的Redis

SpringCloud-高级篇(十七)_第26张图片

SpringCloud-高级篇(十七)_第27张图片

(3)nginx本地缓存

SpringCloud-高级篇(十七)_第28张图片

在nginx里有一个master进程,多个worker进程,多个worker进程可以处理用户请求,他们可以共享,相等于共享内存了,这只限于nginx内部做共享,如果部署多态openResty,他们之间是无法共享的 

SpringCloud-高级篇(十七)_第29张图片

nginx配置文件添加配置:

SpringCloud-高级篇(十七)_第30张图片

在item.lua中导入这个共享词典:这样就拿到本地缓存对象了

SpringCloud-高级篇(十七)_第31张图片

SpringCloud-高级篇(十七)_第32张图片

在item.lua封装函数 

SpringCloud-高级篇(十七)_第33张图片

SpringCloud-高级篇(十七)_第34张图片

 SpringCloud-高级篇(十七)_第35张图片

查询浏览器:

SpringCloud-高级篇(十七)_第36张图片

错误日志打印:

SpringCloud-高级篇(十七)_第37张图片

在刷新页面:没有打印日志:

查询1003:

SpringCloud-高级篇(十七)_第38张图片

在刷新页面:没有打印日志:

如果把Redis的1003数据删除:

SpringCloud-高级篇(十七)_第39张图片

页面也可以正常访问: 

SpringCloud-高级篇(十七)_第40张图片

你可能感兴趣的:(spring,cloud,spring,spring,boot)