极客时间返利平台,你可以在上边通过山月的链接购买课程,并添加我的微信 (shanyue94) 领取返现。

# 如何实现一个分布式锁

Issue

欢迎在 Gtihub Issue 中回答此问题: Issue 21 (opens new window)

mysql,redis,zk redis 效率较高

多节点部署就会产生分布式问题,分布式锁由两个词组成,分布式

  1. 分布式: 解决分布式问题就要找一个大家都能够访问到的中介,比如 RedisConsulZookeeper
  2. 锁: 解决原子问题,当不存在时便加锁,不存在加锁 要作为原子进行操作

以下是一个 redis 实现的操作

# EX 100:100s 的过期时间
# NX: 如果不存在 User:10086,设置成功返回 OK,否则返回 nil,也就是说 100s 之内只有第一次操作返回 OK
set User:10086 Random:shanyue EX 100 NX
Last Updated: 2/15/2022, 12:06:24 PM