Redis处理高并发 加锁

在程序开发过程中,通常会遇到需要独占式的访问一些资源的情形,比如商品秒杀时扣减库存。这时就需要对资源加锁。实现锁的方式有很多,比如数据库锁、文件锁等等。本文简单介绍PHP中使用redis来实现加锁和解锁。实现方式参考了redis官方文档。

代码环境:单redis实例,PHP5.6及以上,且需开启redis扩展

这段代码会在资源未被锁定(NX选项)时获取锁,同时设定了1s的过期时间(EX)选项,可在代码出错或超时情况下自动释放锁。值被设定为一个随机数,且执行lua脚本来解锁,就不会误释放其它用户加的锁。

更多参考:

https://www.php.cn/redis/452685.html

https://learnku.com/articles/4211/unlock-the-correct-position-of-the-redis-lock

Original: https://www.cnblogs.com/ccdr/p/15689550.html
Author: 车车大人
Title: Redis处理高并发 加锁

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/529408/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球