首页 > 数据库 >[Redis]Redisson

[Redis]Redisson

时间:2024-09-26 13:46:57浏览次数:8  
标签:Redisson 解锁 Redis 获取 等待时间 线程 客户端

image

waitTime 等待时间。客户端尝试获取锁时最大等待时间,超过这个等待时间必然返回获取锁失败。
leaseTime 锁的租期。客户端可持有锁的时间,超过这个时间锁自动过期。

  1. 竞争锁的客户端执行Lua脚本获取锁,如果获取失败,则订阅解锁消息,并挂起线程。
  2. 持有锁的客户端执行Lua脚本解锁,删除锁的同时往解锁消息通道发送解锁指令,Redis会广播解锁消息到所有订阅者。
  3. 等待锁的客户端收到解锁消息或者线程挂起时间超过锁超时时间(leaseTime)时,客户端会重新尝试获取分布式锁,如果仍然获不到,则线程再度进入阻塞状态,等待下一次解锁消息(新的锁持有者释放锁)到达或者锁超时。
  4. 等待锁的客户端如果等待时间超出了最大可等待时间(waitTime),会直接返回锁获取失败。
  5. 无论成功还是失败,等待锁的客户端线程最后都会取消订阅解锁消息。

https://juejin.cn/post/7168802584684134413#heading-7

标签:Redisson,解锁,Redis,获取,等待时间,线程,客户端
From: https://www.cnblogs.com/DCFV/p/18433282

相关文章

  • Ubuntu 安装Mysql+Redis+Nginx
    一、安装MySql1.新系统需要安装一下更新aptupdate-yaptdist-upgrade-yaptinstall-ywget2.安装mysql,并修改配置aptinstall-ymysql-servermysql配置文件通常位于vi/etc/mysql/mysql.conf.d/mysqld.cnf在[mysqld]把bind改成0.0.0.0,增加连接数,修改mode,开......
  • Redis过期时间删除策略详解
    文章目录Redis过期时间删除策略详解一、引言二、Redis过期键删除策略1、定时删除2、惰性删除3、定期删除三、Redis实际采用的策略1、惰性删除Java伪代码2、定期删除Java伪代码四、总结Redis过期时间删除策略详解一、引言在许多应用程序中,我们经常需要缓存一......
  • [redis命令]set&zset命令汇总
    set命令命令含义SADD向集合添加一个或多个成员SCARD获取集合的成员数SDIFF返回给定所有集合的差集SDIFFSTORE返回给定所有集合的差集并存储在destination中SINTER返回给定所有集合的交集SINTERSTORE返回给定所有集合的交集并存储在destination中SISMEMBER判断member......
  • Spring Boot 三层架构结合 Redis 和 ELK 实现高效应用开发
    目录一、技术选型二、项目结构三、SpringBoot三层架构实现四、配置Redis五、配置ELK六、代码解析在企业级应用开发中,良好的架构设计和强大的技术栈能够提高开发效率、增强系统性能和可维护性。本文将介绍如何使用SpringBoot构建三层架构,并结合Redis和ELK(Ela......
  • Redisson与分布式锁
    一.Redis的常用客户端:Jedis:和命令最相似,API全面。缺点:多线程不安全(多线程可以使用连接池,安全使用Jedis)SpringData:线程安全的,底层基于Netty(异步的支持)Redisson:线程安全的,底层基于Netty,提供很多的分布式服务(分布式锁,分布式集合,分布式下的JUC的封装,延时队列)二.Redis实现......
  • Redis6 多线程模型
    优质博文:IT-BLOG-CN一、单线程的优缺点对于一个请求操作Redis主要做3件事情:从客户端读取数据/解析、执行Redis命令、回写数据给客户端。所以主线程其实就是把所有操作的这3件事情串行一起执行,因为是基于内存,所以执行速度非常快。优点&缺点:【1】优点:不存在锁的竞争问题和......
  • Redis学习
    系列文章目录第一章基础知识、数据类型学习第二章万年历项目第三章代码逻辑训练习题第四章方法、数组学习第五章图书管理系统项目第六章面向对象编程:封装、继承、多态学习第七章封装继承多态习题第八章常用类、包装类、异常处理机制学习第九章集合学习第......
  • 【linux】cent7安装redis
    创建目录mkdir-p/usr/local/rediscd/usr/local/redis1、下载&解压wget http://download.redis.io/releases/redis-7.4.0.tar.gztar-zxvf redis-7.4.0.tar.gz2、编译cd redis-7.4.0make报错:make[3]:cc:命令未找到安装gccyuminstallgcc-c++清除数据makedist......
  • [redis命令]列表命令
    列表操作命令含义LSET通过索引设置列表元素的值LPUSH将一个或多个值插入到列表头部LPUSHX将一个值插入到已存在的列表头部RPUSH在列表中添加一个或多个值LPOP移出并获取列表的第一个元素RPOP移除并获取列表最后一个元素BLPOP移出并获取列表的第一个元素BRPOP移出并获取列表......
  • [redis命令]哈希命令
    命令表命令含义HSET用于设置存储在key中的哈希表字段的值HGET获取存储在哈希表中指定字段的值HGETALL获取在哈希表中指定key的所有字段和值HKEYS获取存储在key中的哈希表的所有字段HVALS用于获取哈希表中的所有值HLEN获取存储在key中的哈希表的字段数量HEXISTS用于......