day54_java_基础巩固

简介: 自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i,加油!!!

Redis 的分布式锁:


Redis 官方站提出了一种权威的基于 Redis 实现分布式锁的方式名叫 Redlock,此种

方式比原先的单节点的方法更安全。它可以保证以下特性:

1>安全特性:互斥访问,即永远只有一个 client 能拿到锁

2>避免死锁:最终 client 都可能拿到锁,不会出现死锁的情况,即使原本锁住某资源的

client crash 了或者出现了网络分区

3>容错性:只要大部分 Redis 节点存活就可以正常提供服务


Redis 实现分布式锁


Redis 为单进程单线程模式,采用队列模式将并发访问变成串行访问,且多客户端对

Redis 的连接并不存在竞争关系 Redis 中可以使用 SETNX 命令实现分布式锁。


当且仅当 key 不存在,将 key 的值设为 value。 若给定的 key 已经存在,则 SETNX不做任何动作

SETNX 是『SET if Not eXists』(如果不存在,则 SET)的简写。


返回值:设置成功,返回 1 。设置失败,返回 0 。

使用 SETNX 完成同步锁的流程及事项如下:

使用 SETNX 命令获取锁,若返回 0(key 已存在,锁已存在)则获取失败,反之获取成功

为了防止获取锁后程序出现异常,导致其他线程/进程调用 SETNX 命令总是返回 0 而进

入死锁状态,需要为该 key 设置一个“合理”的过期时间

释放锁,使用 DEL 命令将锁数据删除。

相关文章
|
6月前
|
人工智能 边缘计算 移动开发
2025展厅数字人竞争力榜单发布:AI交互数字人驱动智慧展厅全面进化
AI数字人正引领数字展厅迈向智能新时代。世优科技波塔AI凭借拟人形象、实时交互、多模态融合等五大核心能力,在2025年权威榜单中领先,赋能企业、政务、文博等多元场景,实现沉浸式体验与降本增效,推动“人工智能+”战略落地,开启智慧交互新纪元。
388 1
|
1月前
|
自然语言处理 安全 流计算
MOBILedit Forensic Ultra 9.8 发布,高级解锁和 16 种语言支持
MOBILedit Forensic Ultra 9.8 for Windows x64 Multilingual - 手机、智能手表和云服务一体化数字取证解决方案
176 0
MOBILedit Forensic Ultra 9.8 发布,高级解锁和 16 种语言支持
|
Java 开发工具
JVM参数太多?一网打尽常用JVM参数!
JVM参数太多?一网打尽常用JVM参数!
|
存储 算法 Windows
3.9.4Cache写策略
计算机组成原理之Cache写策略
981 0
|
编解码 C++
SDR 与 HDR:您应该了解什么
HDR vs SDR,你知道它们的具体区别吗?SDR 和 HDR 代表什么?在这篇文章中,您将熟悉最专业的 HDR 到 SDR 转换程序。请继续阅读以了解详细信息。
|
Java 应用服务中间件 设计模式
|
IDE Java C++
【Python】 基础语法
【Python】 基础语法
274 1
|
传感器 机器学习/深度学习 编解码
ViT强势应用 | V2X基于ViT提出了一个具有V2X通信的强大协作感知框架
在本文中研究了Vehicle-to-Everything(V2X)通信在提高自动驾驶汽车感知性能方面的应用。使用新颖的vision Transformer提出了一个具有 V2X 通信的强大协作感知框架。
ViT强势应用 | V2X基于ViT提出了一个具有V2X通信的强大协作感知框架
|
关系型数据库 数据管理 数据库
DMS产品常见问题之DMS的免费试用提示活动条件不满足如何解决
DMS(数据管理服务,Data Management Service)是阿里云提供的一种数据库管理和维护工具,它支持数据的查询、编辑、分析及安全管控;本汇总集中了DMS产品在实际使用中用户常遇到的问题及其相应的解答,目的是为使用者提供快速参考,帮助他们有效地解决在数据管理过程中所面临的挑战。
|
JavaScript Java
layui会议OA项目数据表格新增改查
layui会议OA项目数据表格新增改查
176 0

热门文章

最新文章