我是靠谱客的博主 安静世界,最近开发中收集的这篇文章主要介绍分布式锁和本地锁,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

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

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

读锁是共享锁

读 +读          相当于无锁

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

写+写          相当于阻塞方式

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

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

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

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

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

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

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

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

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

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

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

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

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

 

最后

以上就是安静世界为你收集整理的分布式锁和本地锁的全部内容,希望文章能够帮你解决分布式锁和本地锁所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部