redis分布式锁的用法
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇文章主要讲解了"redis分布式锁的用法",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"redis分布式锁的用法"吧!redis分布式锁没什么技术含
千家信息网最后更新 2025年02月02日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安全错误
数据库的锁怎样保障安全
eve网络安全
方块三国服务器完整版
excel转换成数据库
怎么实现游戏与服务器连通
挖矿服务器中转如何设置ssl
网络安全教育黑板报文案
保证网络安全的方法和技术
算法构建数据库
网络安全秘籍中小企业网络安全
前端软件开发服务费
网络安全技术实践课题
力控 写 sql 数据库
1.8你的世界服务器
默纳克电梯服务器改密码
华为运动没数据库
网络安全宣传周手抄
cnpm服务器
域名解析到邮件服务器
苹果公司网络安全优点缺点
2008数据库简易版
深圳卡拉网络技术
软件开发需要微软授权吗
长沙erp软件开发怎么收费
用友软件数据库标记是什么
重庆渝益信软件开发
安徽dell服务器云空间
excel报表生成数据库
网络安全工程师好么
杭州刀塔网络技术有限公司
搭建自己的微信服务器