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安全错误
数据库的锁怎样保障安全
计算机系统网络安全检查表
郑州企业软件开发哪家实惠
营口奇点网络技术
深圳精彩时代网络技术
酒仙网数据库分析
metlin 数据库
dnf17173数据库
人图网络技术公司
荣耀无法连接激活服务器怎么办
个人信息数据库软件
中小学网络安全教育基础条件分析
浙江明讯网络技术有限公司
立密精讯联滔电子软件开发工程师
福州软件开发毕业生工资
证券公司数据库运维
微乐老出现服务器繁忙
手机网络安全秘钥是什么
石家庄南北游网络技术
使用电脑软件开发
数据库防护网关
南水北调网络安全采购项目
网络安全素材免费
东信网络技术app
易语言edb数据库速度慢
华为 服务器机柜
普及网络安全文案
网络安全教育会议讲话
苹果怎么把数据库app移出来
打拐数据库一般多久复核
学软件开发的学费