优化背景
1:数据统计类型的项目,用户量多、业务数据量大、计算逻辑复杂。
2:项目开发工作临近完成,不宜大改动。
方案
1:针对背景第1点,需要使用Redis把复用性高的统计结果缓存起来。减少重复的计算,减少数据库压力,提高服务响应速度。
2:使用 注解+AOP的技术,达到代码修改最小化、缓存可配置化。
下图是我整个设计的详细思维:
![f1f52f58951b9339740685d9e23608da.png](https://i-blog.csdnimg.cn/blog_migrate/d6d9c0517fdeff586db9c01dba2195f0.jpeg)
实现
流程
![2557ac066fd40adedb4f5281a90db61f.png](https://i-blog.csdnimg.cn/blog_migrate/febe9716c6d8035f2f9ea13e7418d64e.jpeg)
流 程
Redis配置
spring.redis.host=172.26.175.74
spring.redis.port=6379
spring.redis.password=admin
#0:不启用 1:启用
report.redis.enable=1
注解
import java.lang.annotation.*;@Documented@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface RedisCashe { //缓存名称,用于Redis Key的命名。 String cacheName(); //过期时间配置 以秒为单位,示例(1天):3600*60*24 int expire();}
AOP缓存(关键)
/**部份命名空间因为脱敏,干掉了。**/@Aspect@Componentpublic class RedisProcess { private static final Logger logger = LoggerFactory.getLogger(RedisProcess.class); @Resource RedisTempl