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

【java面试day7】redis分布式锁

文章目录

    • 问题
      • 💬 Question 1
      • 💬 Question 2
      • 💬 Question 3
      • 💬 Question 4
    • 相关知识

问题

💬 Question 1

Q:Redis分布式锁是如何实现的?
A:Redis 分布式锁是通过 SETNX 命令实现的,因为 Redis 是单线程的,执行命令时具有原子性。使用 SETNX 可以确保同一时间只有一个客户端能成功设置某个 key,代表获得锁;在该 key 未过期或未被删除之前,其他客户端无法再获得该锁,从而实现分布式的互斥访问。

💬 Question 2

Q: 你是如何控制redis分布式锁的有效时长的呢?
A:在 Redisson 中,我们需要手动加锁,并且可以设置锁的最大持有时间和等待时间。在Redisson中会自动启用“看门狗机制”,每隔特定的时间会检查当前线程是否还持有锁,如果是,则会自动续期,防止业务尚未完成时锁被自动释放。等到业务执行完后再显式释放锁即可。

💬 Question 3

Q:redisson实现的分布式锁是可重入的吗?
A:是可重入的,同一个线程在持有锁的情况下可以重复加锁,内部会通过线程标识和锁重入计数来管理,确保只有获取锁的线程才能释放,避免误删其他线程的锁。

💬 Question 4

Q:redisson实现的分布式锁能解决主从一致性的问题吗?
A:Redisson 的普通分布式锁不能完全解决主从一致性问题,因为 Redis 的主从复制是异步的,可能在主节点加锁成功但还未同步到从节点时主节点就宕机,导致锁丢失。为了解决这个问题,Redisson 提供了基于多个主节点的 RedLock 红锁机制,通过在多个 Redis 实例上加锁以增强一致性和容错能力。

相关知识

redis相关知识

http://www.lryc.cn/news/603084.html

相关文章:

  • SpringBoot 发送邮件
  • 五自由度磁悬浮轴承转子不平衡质量的高性能控制策略全解析
  • 算法训练营day34 动态规划② 62.不同路径、63. 不同路径 II、343整数拆分、96.不同的二叉搜索树
  • Java响应式编程
  • ATF 运行时服务
  • ros2的package.xml和rosdep
  • 基于深度学习的医学图像分析:使用3D CNN实现肿瘤检测
  • 第十天:字符菱形
  • 一个Pycharm窗口添加多个项目来满足运行多个项目的需求
  • DDoS攻击防御:从5G到T级防护方案全对比
  • 企业级日志分析系统ELK
  • Python动态规划:从基础到高阶优化的全面指南(3)
  • 历史版本的vscode下载地址
  • 实验-静态路由
  • 智慧工地系统:科技赋能建筑新未来
  • 学习dify:一个开源的 LLM 应用开发平台
  • 【GitHub Workflows 基础(二)】深入理解 on、jobs、steps 的核心语法与执行逻辑
  • 【2025/07/28】GitHub 今日热门项目
  • 【iOS】类和分类的加载过程
  • LNMP架构+wordpress实现动静分离
  • Cacti RCE漏洞复现
  • 四、计算机组成原理——第1章:计算机系统概述
  • 可扩展架构模式——微服务架构最佳实践应该如何去做(方法篇)
  • 《汇编语言:基于X86处理器》第10章 结构和宏(2)
  • linux命令grep的实际应用
  • 在虚拟机ubuntu上修改framebuffer桌面不能显示图像
  • 1.vue体验
  • Android 媒体播放开发完全指南
  • Ansible提权sudo后执行报错
  • 电脑开机不显示网卡的原因