分布式锁和本地锁

分布式锁 大锁 锁所有服务 本地锁 小锁 锁每个服务

分布式通过整合redisson来添加 (locke)

写锁是互斥锁,有一个锁,就必须等释放完才能进行下一个锁

读锁是共享锁

读 +读          相当于无锁

读+写          等读锁释放完,再进行写锁

写+写          相当于阻塞方式

写+读          等写锁释放完,再进行读锁

本地锁可以通过synchronized来解决当然用整合的springCache更好

五个注解解决相关锁的问题 因为这个源码添加的是本地锁

在启动类加上@EnableCaching注解即可开启使用缓存。

@Cacheable(触发数据保存到缓存中)

@Cacheble注解表示这个方法有了缓存的功能,方法的返回值会被缓存下来,下一次调用该方法前,会去检查是否缓存中已经有值,如果有就直接返回,不调用方法。如果没有,就调用方法,然后把结果缓存起来。这个注解一般用在查询方法上

@CachePut(不影响方法执行更新操作)

加了@CachePut注解的方法,会把方法的返回值put到缓存里面缓存起来,供其它地方使用。它通常用在新增方法上

@CacheEvict(触发数据从缓存中删除)

使用了CacheEvict注解的方法,会清空指定缓存。一般用在更新或者删除的方法上

@Caching(组合上面的多个操作)

Java注解的机制决定了,一个方法上只能有一个相同的注解生效。那有时候可能一个方法会操作多个缓存(这个在删除缓存操作中比较常见,在添加操作中不太常见)。

@CacheConfig(在类级别共享缓存的相同配置)
前面提到的四个注解,都是Spring Cache常用的注解。每个注解都有很多可以配置的属性,这个我们在下一节再详细解释。但这几个注解通常都是作用在方法上的,而有些配置可能又是一个类通用的,这种情况就可以使用@CacheConfig了,它是一个类级别的注解,可以在类级别上配置cacheNames、keyGenerator、cacheManager、cacheResolver等。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值