Springboot自定义注解+aop实现redis自动清除缓存功能

embedded/2024/10/18 18:23:25/

假如我们是一个商家,我们在管理端 设置好菜品之后,每次不同的用户访问我们的菜品,都要查询数据库,当访问者多的时候,会造成数据库的卡顿,所以使用redis进行缓存,这样只需要读取一次数据库,就可以的大大减少数据库的访问压力,但是当我们 管理端对某个菜品进行删除的时候,用户再次访问,还会访问到我们redis 数据库的数据,这时候就会出现bug,所以我们在删除菜品的时候,也应该把对应的redis的菜品缓存数据删除

 但是我们执行删除修改增加菜品的时候,统一设置删除缓存数据,但是我们一个个的调用封装的删除缓存的方法太麻烦了,我们不妨直接使用aop+注解的形式统一进行缓存删除的管理

1. 自定义注解.

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Deleterediscache {
}

2.使用aop对删除增加修改菜品的方法进行 统一删除缓存

@Aspect
@Slf4j
@Component
public class DeleteRedisCache {@AutowiredRedisTemplate redisTemplate;@Pointcut("execution(* com.sky.mapper.*.*(..))&& @annotation(com.sky.annotation.Deleterediscache)")
public void pointcut(){}@After("pointcut()")public void deleteRedisCache(JoinPoint joinPoint){log.info("开始清理redis缓存");//获取方法签名MethodSignature signature = ( MethodSignature)joinPoint.getSignature();//获取方法签名的注解名称Deleterediscache deleterediscache = signature.getMethod().getAnnotation(Deleterediscache.class);if(deleterediscache !=null){Set keys = redisTemplate.keys("dish_*");redisTemplate.delete(keys);}log.info("redis缓存清理完毕");}}


http://www.ppmy.cn/embedded/22633.html

相关文章

Crowd counting 系列NO.1—CSRNet

CSRNet:Dilated Convolutional Neural Networks for Understanding the Highly Congested Scenes 声明:博客是用latex写的,所以直接用图片来展示吧,效果是一样的。下载资源网上都很容易搜到,如需下载资源,请留言。

Oracle 11g 生产库因密码过期修改密码产生library cache lock等待事件导致用户hang问题分析及处理

一、问题描述 这个五一假日,旅游景点真的是人山人海,不是看景而是看人。于是,索性假日就不去景点,就在家附近逛逛。 假日的一天中午,在家附近上场,接到同事打来电话,有个国外点的生产库应用无法…

如何解决 IntelliJ IDEA 2024 启动总闪退问题?一站式解决方案!

🧠 如何解决 IntelliJ IDEA 2024 启动总闪退问题?一站式解决方案! 文章目录 🧠 如何解决 IntelliJ IDEA 2024 启动总闪退问题?一站式解决方案!摘要引言正文一级标题:检查和优化内存设置一级标题…

场外个股期权开户新规及操作方法

场外个股期权开户新规 场外个股期权开户新规主要涉及对投资者资产实力、专业知识、风险承受能力和诚信记录的要求。以下是根据最新规定总结的关键要点: 来源/:股指研究院 资产门槛:投资者需具备一定的资产实力,确保在申请开户前…

使用 Python 和 Keras 实现卷积神经网络

MNIST数据集 我们将使用另一个著名的数据集——MNIST 数据集。该数据集扩展了其前身 NIST,具有 60,000 个样本的训练集和 10,000 个手写数字图像的测试集。所有数字都已标准化大小并居中。图像的大小也是固定的,因此预处理图像数据被最小化。这就是为什么这个数据集如此受欢…

数据挖掘实验一

一、实验环境及背景 使用软件: Anaconda3 Jupyter Notebook 实验内容: 1.使用Tushare或者其他手段获取任意两支股票近三个月的交易数据。做出收盘价的变动图像。2.使用Pandas_datareader获取世界银行数据库中美国(USA)、瑞典&…

基于微信小程序的旅游系统的设计与实现

基于微信小程序的旅游系统的设计与实现 Design and Implementation of a Tourism System based on WeChat Mini Program 完整下载链接:基于微信小程序的旅游系统的设计与实现 文章目录 基于微信小程序的旅游系统的设计与实现摘要第一章 绪论1.1 研究背景与意义1.2 国内外研究…

PostgresQL-丢失各种数据文件如何恢复

环境准备索引文件丢失fsm文件丢失mv文件丢失数据文件丢失pg_wal日志丢失pg_xact日志丢失pg_authid系统表数据丢失总结 环境准备 --创建测试表 postgres# create table test (n_bh int4 primary key,c_name varchar(300)); CREATE TABLE Time: 1162.555 ms --插入数据 postgre…