首页 > 数据库 >73、缓存---分布式锁---Redisson读写锁测试

73、缓存---分布式锁---Redisson读写锁测试

时间:2023-02-01 19:33:06浏览次数:35  
标签:Redisson String 写锁 lock rLock --- 73 readWriteLock

保证一定读到最新数据,修改期间,写锁是一个排他锁/互斥锁。读锁是一个共享锁。(相当于操作系统中的读写者问题)
写锁没释放读必须等待

测试如下:

@Autowired
    RedissonClient redissonClient;

    @Autowired
    StringRedisTemplate redisTemplate;

    @GetMapping("/write")
    @ResponseBody
    public String writeValue(){
        RReadWriteLock readWriteLock = redissonClient.getReadWriteLock("rw-lock");
        RLock rLock = readWriteLock.writeLock();//获取写锁
        String s = null;
        try {
            //1、该数据加写锁,读数据加读锁
            rLock.lock();
            s = UUID.randomUUID().toString();
            Thread.sleep(30000);
            redisTemplate.opsForValue().set("writeValue", s);
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            rLock.unlock();//解锁
        }

        return s;
    }

    @GetMapping("/read")
    @ResponseBody
    public String readValue(){
        RReadWriteLock readWriteLock = redissonClient.getReadWriteLock("rw-lock");
        RLock rLock = readWriteLock.readLock();//获取读锁
        String s = null;
        try {
            rLock.lock();
            s = redisTemplate.opsForValue().get("writeValue");
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            rLock.unlock();
        }

        return s;
    }

标签:Redisson,String,写锁,lock,rLock,---,73,readWriteLock
From: https://www.cnblogs.com/morehair/p/17083956.html

相关文章

  • 72、缓存---分布式锁---Redisson的Lock锁测试
    @GetMapping("/hello")@ResponseBodypublicStringhello(){//1、获取一把锁,只要是锁的名字一样,就是同一把锁RLocklock=redissonClien......
  • Redis的雪崩,击穿,穿透详解-转载
    在今天的互联网里,高并发、大数据量、大流量已经成为了代言词,那么我们的系统也承受着巨大的压力,首当其冲的解决方案就是redis。那么redis使用不当就会产生雪崩、穿透、击穿......
  • 心理学-推荐嘉宾-赵了了
    【心理学嘉宾-赵了了-抖音主页】https://www.douyin.com/user/MS4wLjABAAAAx8SHCZdfKJP3jMdjL4GxkU4WFoS1QJ1UyEeS_YrWF3SUtflX5yDN1ogLdnI1iIWm?modal_id=71461628956325......
  • 增加uuid中“-”问题
    问题:django在将uuid存入数据库时候会将“-”删除,如:“2ac99acd-c8da-4a86-a6f4-f7086d554dde”->“2ac99acdc8da4a86a6f4f7086d554dde”解决办法:importuuidclient_......
  • 漏洞免费实战部分-安卓应用漏洞学习case6
    安卓应用漏洞学习case6前期回顾漏洞免费实战部分-安卓应用层getLastPathSegment函数问题漏洞实战部分2-安卓应用ZipEntry对象问题实战漏洞实战部分3-ContentProvider......
  • 【ES HTTP-高级查询 02】
    一、高级查询Elasticsearch提供了基于JSON完整的DSL来定义查询#构造数据-供后续各种复杂的查询做准备#POST/student/_doc/1001{"name":"zhangsan","nic......
  • 《istio-in-action 系列》 1. 安装 docker-k3s-istio 开发环境
    《istio-in-action系列》1.安装docker-k3s-istio开发环境1.安装docker我这里使用的是​​ubuntu20.04LTS​​操作系统sudoaptupdatesudoaptinstalldocker.io......
  • go学习笔记-
    http.HandleFunc("/",func(whttp.ResponseWriter,r*http.Request){http.ServeFile(w,r,"index.html")})HandleFunc注册一个处理器函数handler和对应的模式p......
  • 超大文件上传-如何上传文件-大文件上传
    ​ 文件上传是最古老的互联网操作之一,20多年来几乎没有怎么变化,还是操作麻烦、缺乏交互、用户体验差。一、前端代码英国程序员RemySharp总结了这些新的接口 ,本文在他......
  • vulnhub_matrix-breakout-2-morpheus
    前言靶机地址:matrix-breakout-2-morpheus攻击机:kali2022.3靶机:matrix-breakout-2-morpheus题目描述:这是《黑客帝国突围》系列的第二部,副标题为墨菲斯:1。它的主题是对......