
image.png
对以上问题解决办法,就是使用lua脚本,参考
https://www.jianshu.com/p/0e5d592197c1。
至此,还没有完,就是过期时间的的问题,如果高并发下,某个线程被阻塞,导致超时,那么redis过期了,就导致并发问题了,如果说过期时间设置太长,如果服务重启了,那么key就释放不了了,
因此,稳妥一点的解决办法,就是锁续命。
就是在加锁后,异步起一个线程,每隔几秒去判断一下,redis锁是否还在或者过期,给重新设置锁的过期时间,这样会完美解决上述问题。
具体实现有现成框架redisson
我们项目并发量一般,所以普通加锁就能满足
文章均来自互联网如有不妥请联系作者删除QQ:314111741 地址:http://www.mqs.net/post/12308.html
添加新评论