php redis分布式锁

慈云数据 2024-06-15 技术支持 118 0

一,概念

在PHP中实现分布式锁通常可以使用数据库缓存系统(如Redis)或者其他中央存储系统来保证在分布式系统中的数据一致性与同步。秒杀下单、抢红包等等业务场景,都需要用到分布式锁。

在这里插入图片描述

常规方案大概有七中

方案一:SETNX + EXPIRE

方案二:SETNX + value值是(系统时间+过期时间)

方案三:使用Lua脚本(包含SETNX + EXPIRE两条指令)

方案四:SET的扩展命令(SET EX PX NX)

方案五:SET EX PX NX + 校验唯一随机值,再释放锁

方案六: 开源框架~Redisson

方案七:多机实现的分布式锁Redlock

这里我采用方案三,加锁和根据判断解锁都需要保持原子性,所以使用Lua脚本

二、代码

  
微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon