当前位置:网站首页>Redis分布式锁
Redis分布式锁
2022-08-07 21:38:00 【融极】
概述
随着业务发展的需要,原单体单机部署的系统被演化成分布式集群系统后,由于分布式系统多线程、多进程并且分布在不同机器上,这将使原单机部署情况下的并发控制锁策略失效,单纯的Java API并不能提供分布式锁的能力。为了解决这个问题就需要一种跨JVM的互斥机制来控制共享资源的访问,这就是分布式锁要解决的问题。
分布式锁主流的实现方案:
- 基于数据库实现分布式锁。
- 基于缓存(Redis等)。
- 基于Zookeeper。
每一种分布式锁解决方案都有各自的优缺点:
- 性能:redis最高。
- 可靠性:zookeeper最高。
这里,我们就基于redis实现分布式锁。
解决方案
redis:命令。
# set sku:1:info "OK" NX PX 1000
命令解析
EX second:设置键的过期时间为second秒。SET key value EX second效果等同于SETEX key second value。
PX millisecond:设置键的过期时间为millisecond毫秒。SET key value PX millisecond效果等同于PSETEX key millisecond value。
NX:只在键不存在时,才对键进行设置操作。SET key value NX效果等同于SETNX key value。
XX:只在键已经存在时,才对键进行设置操作。
方案优化之UUID防误删
- 设置key为10s过期。

- set key uuid nx ex 30,value的值使用uuid。

方案之LUA脚本保证多redis命令原子性
redis集群支持Lua脚本。
使用redisTemplate集群模式下执行lua脚本报错的问题解决过程
redis集群执行lua
参考
边栏推荐
- 【Day10】进程管理命令
- The solution to the prompt 0xc0000022 when playing some old games in win10 system.
- 【每日一题】636. 函数的独占时间
- 【三年面试五年模拟】算法工程师的独孤九剑秘籍(第七式)
- webstrom 插件开发(一)
- win7不显示文件扩展名怎么办 win7显示文件扩展名方法
- UE4 Sequence adds basic animation effects (02-switch action)
- 电脑上怎么登陆两个微信_电脑上怎么登录两个微信
- Cypher查询语言Cypher和SQL的对比
- Webstrom plug-in development (a)
猜你喜欢

无线蓝牙耳机如何连接电脑 无线蓝牙耳机能连电脑吗

Time to learn about mmap

Win7系统下System Idle Process占用率高怎么办

打开方式默认怎么修改 怎么更改文件的打开方式

Win7打开word提示“无法打开文件Normal因为内容有错误”怎么办

无法访问打印机怎么办 共享打印机无法访问权限怎么解决

How to install dual system on Apple computer

How to change the default opening method How to change the opening method of a file

如何使用 ABAP 创建包含不同字体大小的 Word 文档试读版

如何加密excel文件 excel文档加密如何设置
随机推荐
数据导入从关系型数据库导入
STC4054锂电池充电IC
知乎高赞:拼多多和国家电网,选哪个?
Aptos合约开发实践(一)-hello,Aptos!
低成本、大容量、高交互…Polkadot 引领 GameFi 实现新突破
【每日一题】636. 函数的独占时间
现在网上开户安全么?想知道证券公司开户如何得到优惠?
autocad2007激活码序列号_激活cad2007的方法
LeetCode_双指针_中等_633.平方数之和
偶像工场,开启虚拟人数字藏品新时代
The difference between Icon and Ico pictures
【三年面试五年模拟】算法工程师的独孤九剑秘籍(第七式)
Dp array to solve knapsack problem
Nifi configuration mysql_binlog reads
[笔记]攻防工具分享之 CobaltStrike框架 《二》生成后门
【瑞吉外卖】day03:完善登录功能与新增员工
Notebook computer memory that can hold laptop memory how to install
Redis - Linux系统安装redis服务并启动
图数据建模从关系型数据到图数
双重队列问题