page contents

Redis分布式锁

Pack 发布于 2020-01-03 15:37
阅读 896
收藏 0
分类:nosql缓存

用Redis实现分布式锁,key过期了,但是请求方法还没执行完,怎么解决?### 问题描述


问题出现的环境背景及自己尝试过哪些方法

1 刷新key的过期时间,时间怎么合理设计

2 是否还有更好的解决方案


相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)


你期待的结果是什么?实际看到的错误信息又是什么?

99
Pack
Pack

1.key不过期,需要业务去控制每天redis key对应值做逻辑更新,比如秒杀每天限量,到零点定时置0.

2.redisson框架内部提供监控锁WatchDog,作用是在redisson实例关闭前不断延长锁有效期。默认超时时间为30秒,可通过修改Config.lockWatchdogTimeout指定。比如加锁的时间是30秒.如果加锁的业务没有执行完,那么到 30-10 = 20秒的时候,就会进行一次续期,把锁重置成30秒.那这个时候可能又有同学问了,那业务的机器万一宕机了呢?宕机了定时任务跑不了,就续不了期,那自然30秒之后锁就解开

https://blog.csdn.net/wutengfei_java/article/details/100699538

请先 登录 后评论