场景题:redis设置高并发抢单一的东西,如何避免高并发对一个键进行访问? 1. 利用 SETNX 只有在键不存在时才设置成功的性质,实现锁的作用 2. 使用 WATCH 命令监视该键,在事务中使用 MULTI+EXEC完成原子操作 3. 同步锁 RedLock 使用集群内多个节点实现同步锁,降低重入失败概率 4. 定时+自旋锁 设置一个定时键来实现锁,带有过期时间减少死锁风险 5. 随机等待 加随机等待来减缓并发冲突,比如usleep(rand()%1000)。 6. 请求进入redis前先进入消息队列进行削峰