
redisson
文章平均质量分 58
我才是真的封不觉
某外企高级开发,菜鸟一个,希望在博客记录自己技术的成长,目标是成为一个好脾气的技术大牛。
b站账号 觉哥学java
展开
-
分布式缓存技术-redis应用篇 (redisson ,数据一致性(缓存穿透,雪崩,击穿等问题),布隆过滤器 )
一、redis客户端工具哪家强?你可能听过jedis,你可能也听过lettuce ,但是redisson 这玩意 相当于把java中的常用数据结构比如下面的集合,还有锁都在redis中实现了,集群啊啥的他也都支持 分布式环境下 就用它了主要它还是我们中国人写的 链接如右redisson使用链接...原创 2021-09-30 00:17:35 · 611 阅读 · 0 评论 -
day112-缓存-学会SpringCache看这篇就够了(入门,注解使用,自定义配置以及不足与解决方案)
1.简介之前我们说了关于读模式写模式的一些概念,以及对于缓存一致性的解决方案这一次说的是springcache,相当于简化前面的固有操作,可以理解为对缓存的一个抽象,他是spring集成组件的一部分,有了他的话我们使用缓存就简单多了,之前许多操作往往一个注解就搞定了,官方学习链接如下https://docs.spring.io/spring-framework/docs/5.2.13.RELEASE/spring-framework-reference/2.进一步了解应用要.原创 2021-03-23 03:10:34 · 366 阅读 · 0 评论 -
day111-缓存-分布式锁-缓存一致性解决看这里就够了
1.缓存一致性是个啥就是缓存里的数据与数据库里的数据是不是相同的,这种一致性其实也分为实时一致性与最终一致性2.保证缓存一致性的两种常用方式这两种方式如下图,可以看到都会存在一定的问题双写模式很明显,线程一由于网络或者啥原因,先写库但是却后于线程二刷缓存,缓存内数据自然是有误的失效模式如图,线程一写db然后删缓存,没啥问题,线程二写db,然后还没删缓存的时候,线程三读缓存,线程三此时相当于读的内容中缺少了线程二写入db的内容,也就是此时缓存是少了线程二写的内容的,然后线程原创 2021-03-22 01:40:51 · 343 阅读 · 0 评论 -
day110-缓存-分布式锁-Redisson-闭锁countdownlatch测试
1.countdownlatch概念他是啥,做啥用?其实就相当于是个计数器,比如你某个线程运行前,必须有10个线程运行你才能运行,那么就可以用这玩意来保证,实际上有啥场景呢,比如你电脑开机,bios检查内存显卡啥的正常,加载啥界面设置,加载操作系统等等线程都运行好了你才进入桌面2.模拟场景这里我们模拟一场跑步比赛,比赛共十个人,全部人都跑完或者时间超过十分钟比赛就结束上代码 @RequestMapping({"/gameProcess"}) @ResponseB.原创 2021-03-21 23:13:49 · 337 阅读 · 0 评论 -
day109-缓存-分布式锁-Redisson-信号量测试
1.信号量?Semaphore 通常我们叫它信号量, 可以用来控制同时访问特定资源的线程数量,通过协调各个线程,以保证合理的使用资源。可以把它简单的理解成我们停车场入口2.模拟场景模拟一个停车场停车的场景,总共300个停车位,这里我们方便测试假设3个不多说,上代码 @RequestMapping({"/park"}) @ResponseBody public String park(){ RSemaphore park = rediss.原创 2021-03-21 22:38:19 · 398 阅读 · 0 评论 -
day108-缓存-分布式锁-Redisson-读写锁
1.啥是读写锁关于读写锁,顾名思义,就是分别应用于读场景与写场景的两种锁读锁是共享锁,写锁是排他锁,啥意思呢?也就是写锁只能独立存在,而读锁可以一起存在通俗来说,同名读写锁中,当出现写锁时,同名读锁不能加锁,同名写锁也不能加锁而当存在读书锁时,同名读锁能加锁,但是同名写锁不能加锁。2.为什莫其实这都是为了符合数据一致性而设计的,你想一想,当你写往某张表写数据时,另一个人在往这张表读数据他是不是要在你写完数据后再读才是读的最新数据呢?这个时候就可以用读写锁来限制当然,如原创 2021-03-19 16:19:17 · 411 阅读 · 0 评论 -
day107-缓存-分布式锁-Redisson-lock看门狗原理-redisson如何解决死锁
关于说看门狗原理之前,先看看下面两行代码,哪一行用了看门狗呢?第二行代码跟源码我们会发现,带了过期时间的话,会执行lua脚本,执行上锁操作,然后过期时间是你设置的10s,所以一般要根据业务执行的平均时间然后再适当增加来设置过期时间,以保证业务执行完之前锁还没过期第一行代码再仔细跟代码的话关于看门狗部分:就是上锁时会有个过期时间,然后看门狗其实就是个定时任务,在每隔1/3默认时间时也就是10s执行一次,然后把过期时间蓄满,所以在业务完成执行完成之前,锁不会自动过期,而业务完成之原创 2021-03-18 17:35:07 · 464 阅读 · 0 评论 -
day106-缓存-分布式锁-Redisson-可重入锁介绍及lock锁测试
1.可重入锁介绍什么是可重入锁,举个例子现在我有锁对象lock,在调用A方法内,有用lock锁住锁住后在A方法内有对B方法的调用,B方法内又有用lock锁住,如果不是可重入锁,那么调用B方法时就死锁了,因为A方法内lock锁还不会释放,如果是可重入锁,那么可以直接运行B方法,看到这你应该明白了,同一线程内,一旦获取到了某个锁,那么线程后续执行还需要此锁,那么可以直接使用想要详细了解参考:https://blog.csdn.net/yanyan19880509/article/d.原创 2021-02-12 16:16:42 · 334 阅读 · 0 评论 -
day105-缓存-分布式锁-Redisson简介&整合
1.简介之前已经说了分布式环境下我们需要使用使用分布式锁,而java语言中分布式锁的实现就是Redisson,他跟jedis,lettuce它们一样也是操作redis的一个客户端,只是里面功能更强大而已https://github.com/redisson/redisson/wiki/Table-of-Content打开后右侧即为中文文档的目录2.整合(1)引入依赖https://mvnrepository.com/search?q=redisson复制依赖添加到项目produc..原创 2021-02-10 17:05:55 · 196 阅读 · 0 评论