IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Redis分布式锁 -> 正文阅读

[大数据]Redis分布式锁

分布式概念

因为架构演变,才有了 有一变多,单个变集群的概念。相应的数据存储也从一处变成多处,也就是分布式的存储。 分散能力

相同业务的资源能力分散化,高可用,高利用。
业务A 的领域能力 可以 分散成 A1 A2 A3 A4 4台资源分散化,A1有问题 A2 A3 A4都能干活,而且服务的整合能力也是3倍。

锁概念

既然高可用,能力分散在多个服务器,锁是干嘛的,要知道,业务处理的能力在多再强大,对于数据核心处理的地方只有一个那就是 数据库资源,这个是共享的区域,锁就是为了 在高可用的情况下 确保安全。

锁就是锁共享内容
lock 方法 是 共享内存块
Monitor.Enter
Monitor.Exit
其实就是内存中共享头部在 0 1 之间转换来实现 一个 锁的标识

为什么要分布式锁

因为现在业务复杂,架构庞大,多个集群
但是分布式 是多台机器 多个进程 lock只是针对一台自身的资源
所以需要找一个 跨机器的资源 来当锁,通过一个共享文件来标识识别锁的状态。

所以跨机器的数据库资源,redis es mongodb mysql 就满足

如果用数据库得资源当锁得话,会有IO读写性能,所以最好是找内存数据库资源
所以选择redis

这样一来,多个机器发请求到redis 这里,即使多个机器是多线程,但是在redis 这里之后就是单线程去控制

怎么管理这么多分布请求。

1.获取锁
2.设置时间
3.释放

1、SETNX
SETNX key val:当且仅当key不存在时,set一个key为val的字符串,返回1;若key存在,则什么都不做,返回0。
2、expire
expire key timeout:为key设置一个超时时间,单位为second,超过这个时间锁会自动释放,避免死锁。
3、delete
delete key:删除key
在使用Redis实现分布式锁的时候,主要就会使用到这三个命令

过程其实就是这样
但是注意的是 获取锁 的方式 有阻塞 非阻塞
同时抢的话 抢到依据是在事务中看版本号来成功与否
LUA脚本 原子性操作

设置时间
1.是防止 意外情况 一直不释放锁 造成死锁
2.是怕没执行完业务操作就释放的情况

释放锁
LUA脚本 原子性操作

谁加锁谁解锁

可重入

redisson
如果能避免使用分布式还是避免,毕竟有性能的关系,

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-24 00:37:48  更:2022-03-24 00:38:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:40:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码