读写锁它的特点就是:保证一定能读到最新数据,修改期间,写锁是一个排它锁(互斥锁、独享锁),读锁是一个共享锁

  • 写锁没释放读锁必须等待
  • 读 + 读 :相当于无锁,并发读,只会在Redis中记录好,所有当前的读锁。他们都会同时加锁成功
  • 写 + 读 :必须等待写锁释放
  • 写 + 写 :阻塞方式
  • 读 + 写 :有读锁。写也需要等待
  • 只要有读或者写的存都必须等待
@GetMapping(value = "/write")
@ResponseBody
public String writeValue() {String s = "";RReadWriteLock readWriteLock = redisson.getReadWriteLock("rw-lock");RLock rLock = readWriteLock.writeLock();try {//1、改数据加写锁,读数据加读锁rLock.lock();s = UUID.randomUUID().toString();ValueOperations<String, String> ops = stringRedisTemplate.opsForValue();ops.set("writeValue",s);TimeUnit.SECONDS.sleep(10);} catch (InterruptedException e) {e.printStackTrace();} finally {rLock.unlock();}return s;
}@GetMapping(value = "/read")
@ResponseBody
public String readValue() {String s = "";RReadWriteLock readWriteLock = redisson.getReadWriteLock("rw-lock");//加读锁RLock rLock = readWriteLock.readLock();try {rLock.lock();ValueOperations<String, String> ops = stringRedisTemplate.opsForValue();s = ops.get("writeValue");try { TimeUnit.SECONDS.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); }} catch (Exception e) {e.printStackTrace();} finally {rLock.unlock();}return s;
}

缓存-分布式锁-Redisson-读写锁补充相关推荐

  1. 缓存-分布式锁-Redisson简介整合

    Redisson分布式 GitHub中文文档 概念:是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid).它不仅提供了一系列的分布式的Java常用对象,还提 ...

  2. 分布式锁:互斥锁、自旋锁、读写锁、悲观锁、乐观锁

    前言 如何用好锁,也是程序员的基本素养之一了. 高并发的场景下,如果选对了合适的锁,则会大大提高系统的性能,否则性能会降低. 所以,知道各种锁的开销,以及应用场景是很有必要的. 接下来,就谈一谈常见的 ...

  3. 面试官:你说说互斥锁、自旋锁、读写锁、悲观锁、乐观锁的应用场景?

    前言 生活中用到的锁,用途都比较简单粗暴,上锁基本是为了防止外人进来.电动车被偷等等. 但生活中也不是没有 BUG 的,比如加锁的电动车在「广西 - 窃·格瓦拉」面前,锁就是形同虚设,只要他愿意,他就 ...

  4. 从自旋锁、睡眠锁、读写锁到 Linux RCU 机制讲解

    总结一下 O/S 课程里面和锁相关的内容. 本文是 6.S081 课程的相关内容总结回顾结合 Real World 的 Linux 讲解各种锁和 RCU lock free 机制原理, 前置知识是基本 ...

  5. java锁(公平锁和非公平锁、可重入锁(又名递归锁)、自旋锁、独占锁(写)/共享锁(读)/互斥锁、读写锁)

    前言 本文对Java的一些锁的概念和实现做个整理,涉及:公平锁和非公平锁.可重入锁(又名递归锁).自旋锁.独占锁(写)/共享锁(读)/互斥锁.读写锁 公平锁和非公平锁 概念 公平锁是指多个线程按照申请 ...

  6. golang:1.并发编程之互斥锁、读写锁详解

    本文转载自junjie,而后稍作修改. 一.互斥锁 互斥锁是传统的并发程序对共享资源进行访问控制的主要手段.它由标准库代码包sync中的Mutex结构体类型代表.sync.Mutex类型(确切地说,是 ...

  7. PHP程序中的文件锁、互斥锁、读写锁使用技巧解析

    文件锁全名叫 advisory file lock, 书中有提及. 这类锁比较常见,例如 mysql, php-fpm 启动之后都会有一个pid文件记录了进程id,这个文件就是文件锁. 这个锁可以防止 ...

  8. 华为应用锁退出立即锁_面试官:你说说互斥锁、自旋锁、读写锁、悲观锁、乐观锁的应用场景...

    前言 生活中用到的锁,用途都比较简单粗暴,上锁基本是为了防止外人进来.电动车被偷等等. 但生活中也不是没有 BUG 的,比如加锁的电动车在「广西 - 窃·格瓦拉」面前,锁就是形同虚设,只要他愿意,他就 ...

  9. 谈谈java并发锁(重入锁、读写锁、公平锁)

    目录 重入锁 简单重入锁 重入锁的等待通知(Condition) 多Condition 公平锁和非公平锁 读写锁ReentrantReadWriteLock 锁优化总结: 重入锁和读写锁,他们具有比s ...

  10. DCMTK:定义信号灯,互斥锁和读/写锁的类

    DCMTK:定义信号灯,互斥锁和读/写锁的类 定义信号灯,互斥锁和读/写锁的类 定义信号灯,互斥锁和读/写锁的类 #include "dcmtk/config/osconfig.h" ...

最新文章

  1. maven在idea的配置
  2. elasticsearch 复杂查询小记
  3. WinForm开发框架资料积累
  4. 1.多彩的幕布CCLayerColor,CCLayerGradient
  5. servlet web.xml学习笔记
  6. 实验九——基本数据类型存储及应用总结
  7. C# Chart控件,chart、Series、ChartArea曲线图绘制的重要属性
  8. C++笔记-使用std::funcional代替函数指针
  9. 信息学奥赛一本通(1222:放苹果)
  10. [Python学习] Django 权限控制
  11. 用户空间缺页异常pte_handle_fault()分析--(上)
  12. Arduino 入门学习笔记5 按键控制激光发生器
  13. 【英语】美式元音 总结
  14. 中国求职者2亿私人简历泄露,APT情报资讯报告2018全球十大安全事件(10401字) (附PDF公号发“简历十大安全”下载)
  15. 史上最全的15个苹果手机输入法使用技巧,不看后悔三年
  16. 很多我们以为一辈子都不会忘记的事情,就在我们念念不忘的日子里,被我们遗忘了。
  17. Jsp+Ssm+Mysql实现的零食商城系统
  18. 世界顶级黑客Kevin D.Mitnick教你如何在数字世界中真正隐形?
  19. Project2013工期小数点问题0.88、1.14、1.13
  20. 功率曲线k值_功率曲线的修正

热门文章

  1. 长脖子鹿省选模拟赛 [LnOI2019SP]快速多项式变换(FPT)
  2. Code Complete
  3. JQuery:JQuery添加元素
  4. 关于wordpress中更换CKEditor编辑器
  5. Memcached Client 使用手册
  6. ---WebCam网络摄像头10 socket
  7. 软件介绍网站:“软矿”x-berry
  8. 通过C++ Interop把Windows窗体集成到MFC应用程序中
  9. Watson使用指南(三)
  10. (旧)子数涵数·Flash——遮罩动画