redis分布式锁的用法
发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,这篇文章主要讲解了"redis分布式锁的用法",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"redis分布式锁的用法"吧!redis分布式锁没什么技术含
千家信息网最后更新 2024年11月26日redis分布式锁的用法
这篇文章主要讲解了"redis分布式锁的用法",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"redis分布式锁的用法"吧!
redis分布式锁
没什么技术含量,不想写的直接拷贝了用吧 ????
基于SpringDataRedis
import org.apache.commons.lang3.StringUtils;import org.springframework.data.redis.core.StringRedisTemplate;import org.springframework.stereotype.Component;import javax.annotation.Resource;import java.time.Duration;import java.util.concurrent.TimeUnit;/** * @author : xuchonggao * @since : 2019-10-11 */@Componentpublic class RedisLock { @Resource StringRedisTemplate stringRedisTemplate; private RedisLock() { } /** * redis 锁 * * @param key 要锁定的key * @param waitTime 获取锁的等待时间 阻塞时间 * @param expireTime 锁过期时间 默认10s * @return */ public boolean lock(String key, Duration waitTime, Duration expireTime) { if (StringUtils.isBlank(key)) { return false; } long start = System.currentTimeMillis(); long waitTimeMillis = waitTime != null ? waitTime.toMillis() : 0L; if (expireTime == null) { expireTime = Duration.ofSeconds(10); } do { Boolean lockRes = stringRedisTemplate.opsForValue().setIfAbsent(key, StringUtils.EMPTY, expireTime); if (Boolean.TRUE.equals(lockRes)) { return true; } try { TimeUnit.MILLISECONDS.sleep(100); } catch (InterruptedException ignore) { } } while (System.currentTimeMillis() - start < waitTimeMillis); return false; } /** * redis 锁 * 非阻塞 * * @param key 要锁定的key * @param expireTime 锁过期时间 * @return */ public boolean lock(String key, Duration expireTime) { return lock(key, null, expireTime); } /** * redis 锁 * 默认十秒过期 非阻塞 * * @param key 要锁定的key * @return */ public boolean lock(String key) { return lock(key, null, null); } /** * 解锁 * * @param key */ public void unlock(String key) { stringRedisTemplate.delete(key); }}
感谢各位的阅读,以上就是"redis分布式锁的用法"的内容了,经过本文的学习后,相信大家对redis分布式锁的用法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
分布式
时间
学习
阻塞
内容
没什么
含量
就是
思路
情况
技术
拷贝
文章
更多
知识
知识点
篇文章
跟着
问题
实践
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
部队如何正确看待网络安全用网
cydia未能连接服务器
交换机dhcp和服务器dhcp
怀柔区大型软件开发报价
第一期我的世界神奇宝贝服务器
网络安全宣传周微话题
web服务器 网络安全
提高服务器安全性的方案
java通用数据库操作
审计网络安全应急工作情况
招聘网络技术员什么写
云南服务器机柜销售公司虚拟主机
服务器关键性能指标
网络安全手抄报绿书签小知识
吴川定制软件开发
希望之村服务器维护几天
sql数据库自动登录
什么服务器能玩tbc
中学生网络安全人才培养计划
无法加入网络安全教育
数据库安装两套
高通 相机软件开发
网络安全都有什么方向
37岁找软件开发工作
电商客户使用数据库类型
网络技术月薪多少
浪潮服务器高温关机重启
万云网络技术有限公司靠谱吗
合肥黑马软件开发培训学校怎么样
汇丰软件开发广州裁员