当前位置: 首页 > news >正文

Redisson的红锁,分段锁,公平锁,联锁。。。。。。

红锁:Redisson红锁可以防止主从集群锁丢失问题。Redisson红锁要求,必须要构建至少三个Redis主从集群,若一个请求要申请锁,必须向所有主从集群中提交key写入请求,只有当大多数集群(过半集群)锁写入成功后,该锁才算申请成功

分段锁:解决锁的串行化引发的性能问题,使访问并行化。将要共享访问的一个资源,拆分成多个共享资源,这样就会将一把锁的需求转变为多把锁,实现并行话
例如:对于秒杀商品sk:0008,共有1000件,现在将其拆分为10份,每份100件。即将秒杀商品变为了10件,分别为 sk:0008:01,sk:0008:02,sk:0008:03,…这样的话,就需要10把锁来控制所有请求的并发,由原来的因为只有一把锁而导致的每个时刻只能处理一个请求,变为了现在有了10把锁,每个时刻可以同时处理10个请求,并发提高10倍

可重入锁:Redisson的分布式锁RLock是一种可重入锁,当一个线程获取到锁之后,这个线程可以再次获取本对象上的锁,而其他线程不可以

公平锁:Redisson的可重入锁RLock默认是一种非公平锁,但也支持可重入公平锁FailLock。当有多个线程同时申请锁时,这些线程会进入到一个FIFO队列,只有队列首元素才能获取到锁,其他元素等待,只有当锁被释放后,才会再将锁分配给当前队列元素

联锁 Redisson分布式锁可以实现联锁MultiLock.当一个线程需要同时处理多个共享资源时,可以使用联锁,即一次申请多个锁,同时锁定多个共享资源。联锁可以预防死锁。相当于对共享资源的申请实现了原子性:要么都申请到,只要缺少一个资源,则将申请到的所有资源全部释放
红锁和联锁的区别是:红锁实现的是对一个共享资源的同步访问控制,而联锁实现的是多个共享资源的同步访问控制

读写锁:一个共享资源,在没有写锁的情况下,允许同时添加多个读锁,只要添加了写锁,任何读锁和写锁都不能再次添加,即读锁是共享锁,写锁为排他锁(和zookeeper的读写锁一致)

后边补充个知识点:
数据库缓存双写不一致问题怎么解决?
延迟双删(操作数据库数据--------》删除缓存----(延时)----》删除缓存)

使用读写锁(Redisson)

Zookeeper的读写锁

相关文章:

  • 信息安全管理与评估2021年国赛正式卷答案截图以及十套国赛卷
  • 高负载WEB服务器--Tomcat
  • 深入理解 v-show 指令及其使用方法
  • 【本地图床搭建】宝塔+Docker+MinIO+PicGo+cpolar:打造本地化“黑科技”图床方案
  • github进阶使用教程
  • .net执行脚本:通过字符串的形式来执行按钮的点击操作
  • 【Python实时数据处理】流式计算与异步编程实战
  • 微服务之protobuf:下载、语法和使用一站式教程
  • Linux文件传输:让数据飞起来!
  • vue2项目集成Tailwindcss
  • 6.1 GitHub亿级数据采集实战:双通道架构+三级容灾设计,破解API限制与反爬难题
  • 青少年编程与数学 02-016 Python数据结构与算法 18课题、组合数学算法
  • Ubuntu 安装 Cursor AppImage 到应用程序中
  • n8n 本地部署及实践应用,实现零成本自动化运营 Telegram 频道(保证好使)
  • linux 如何查看mac地址?喂饭版
  • STM32 HAL库 OLED驱动实现
  • Go语言中的runtime包是用来做什么的?
  • 大模型面经 | 春招、秋招算法面试常考八股文附答案(RAG专题二)
  • Linux实现翻译以及群通信功能
  • 深度学习与力学建模融合的骨力学性能研究
  • 乌克兰议会批准美乌矿产协议
  • 国家发改委:目前有的核电项目民间资本参股比例已经达到20%
  • 复旦设立新文科发展基金,校友曹国伟、王长田联合捐赠1亿元
  • 现场|万米云端,遇见上博
  • 同观·德国|默茨当总理后,能否带领德国在欧盟“说了算”?
  • 韩正出席庆祝中国欧盟建交50周年招待会并致辞