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); } }