针对全量请求的缓存机制实现 - AOP

本文介绍了如何利用AOP的插件特性,通过注解标记缓存处理函数,降低缓存与系统耦合。文中探讨了设计难点,并展示了核心的切面实现,包括数据封装和时间戳处理,以解决缓存过期问题。
摘要由CSDN通过智能技术生成
     最近几天由于工作原因,需要设计实现一个线程安全的缓存机制,拿出来和大家分享交流一下。

应用背景:

     缓存是在实际工作中经常用到的,主要作用呢?1. 提高响应速度 2. 降低cpu压力或者数据库压力。
     在此,我的应用背景是拦截一些RPC请求( 不要求获取实时数据),且RPC请求无参数,即主要是应对一些数据全量同步的请求(那么缓存的key是请求的函数名,value是返回值)。提供缓存实现,以降低数据库及自身应用的访问压力。

目标:

     高可扩展性:可以方便配置需要使用缓存的方法。
     线程安全性:在并发情况下,要求线程安全,且尽可能高效。

使用技术:

  • 使用AOP的插件性质来降低缓存与原系统的耦合性,即在切面层做缓存的处理。
  • 使用Annotation来对需要做缓存处理的函数进行标记,并可以对缓存时间个性化
  • 针对缓存过期问题,对放入缓存的数据封装一层,并打上时间戳
示意图:
 

设计难点:

     针对某一时刻并发数较多且缓存失效的情况下,我们应该保证的是只有一个线程会去执行数据的读取并设置的操作,那么其
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值