概述
分布式锁 大锁 锁所有服务 本地锁 小锁 锁每个服务
分布式通过整合redisson来添加 (locke)
写锁是互斥锁,有一个锁,就必须等释放完才能进行下一个锁
读锁是共享锁
读 +读 相当于无锁
读+写 等读锁释放完,再进行写锁
写+写 相当于阻塞方式
写+读 等写锁释放完,再进行读锁
本地锁可以通过synchronized来解决当然用整合的springCache更好
五个注解解决相关锁的问题 因为这个源码添加的是本地锁
在启动类加上@EnableCaching
注解即可开启使用缓存。
@Cacheable(触发数据保存到缓存中)
@Cacheble
注解表示这个方法有了缓存的功能,方法的返回值会被缓存下来,下一次调用该方法前,会去检查是否缓存中已经有值,如果有就直接返回,不调用方法。如果没有,就调用方法,然后把结果缓存起来。这个注解一般用在查询方法上。
@CachePut(不影响方法执行更新操作)
加了@CachePut
注解的方法,会把方法的返回值put到缓存里面缓存起来,供其它地方使用。它通常用在新增方法上。
@CacheEvict(触发数据从缓存中删除)
使用了CacheEvict
注解的方法,会清空指定缓存。一般用在更新或者删除的方法上。
@Caching(组合上面的多个操作)
Java注解的机制决定了,一个方法上只能有一个相同的注解生效。那有时候可能一个方法会操作多个缓存(这个在删除缓存操作中比较常见,在添加操作中不太常见)。
@CacheConfig(在类级别共享缓存的相同配置)
前面提到的四个注解,都是Spring Cache常用的注解。每个注解都有很多可以配置的属性,这个我们在下一节再详细解释。但这几个注解通常都是作用在方法上的,而有些配置可能又是一个类通用的,这种情况就可以使用@CacheConfig
了,它是一个类级别的注解,可以在类级别上配置cacheNames、keyGenerator、cacheManager、cacheResolver等。
最后
以上就是安静世界为你收集整理的分布式锁和本地锁的全部内容,希望文章能够帮你解决分布式锁和本地锁所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复