(1)添加Redis缓存 -缓存预热
前面实现了openResty查询tomcat,但是缓存架构是,先查询Redis,Redis没有在查询tomcat,下面实现Redis的缓存功能了:
--appendonly yes 运行的时候基于日志的方式做数据的持久化
daocker运行Redis:
这个时候就可以使用Redis客户端连接了
初始化类的时候需要实现一个InitialializingBean,需要实现里面的一个方法,afterPropertiesSet方法,会在这个类创建之后,成员变量初始化之后@Autowire注入以后去执行,需要在这个方法的内部初始化缓存的业务逻辑,就能实现项目已启动就能做初始化
创建初始化类:
Spring中有一个json的处理工具,将对象可以转为json,ObjectMapper:
启动一个tomcat:启动的时候就会写入到Redis当中了
(2)查询Redis缓存
redis.lua在resty目录下,引入的时候需要就加resty
在commmen.lua中封装函数:
引入函数
item.lua封装逻辑函数
修改查询函数:
重启nginx
先把tomcat停掉:
如果还能岔村出来它走得就是查询的Redis
(3)nginx本地缓存
在nginx里有一个master进程,多个worker进程,多个worker进程可以处理用户请求,他们可以共享,相等于共享内存了,这只限于nginx内部做共享,如果部署多态openResty,他们之间是无法共享的
nginx配置文件添加配置:
在item.lua中导入这个共享词典:这样就拿到本地缓存对象了
在item.lua封装函数
查询浏览器:
错误日志打印:
在刷新页面:没有打印日志:
查询1003:
在刷新页面:没有打印日志:
如果把Redis的1003数据删除:
页面也可以正常访问: