redis分布式锁实现,setnx,nodejs版本
const redis = require('ioredis');
const clienId = Math.random() * 100; //模拟客户端Id
const lockKey = 'testKey'
try {
const result = await redis.setnx(lockKey, clienId, 'EX', 10); //防止死锁,10秒
if (result == 0) {
return '系统繁忙!';
}
//省略去库存等业务操作
} catch (error) {
} finally {
if (clienId == await redis.get(lockKey)) {
await redis.del(lockKey);
}
}

浙公网安备 33010602011771号