日常开发中,秒杀下单、抢红包等等业务场景,都需要用到分布式锁。而 Redis 非常适合作为分布式锁使用。本文将分七个方案展开,跟大家探讨 Redis 分布式锁的正确使用方式。如果有不正确的地方,欢迎大家指出哈,一起学习一起进步。
-
什么是分布式锁
-
方案一:SETNX + EXPIRE
-
方案二:SETNX + value 值是(系统时间+过期时间)
-
方案三:使用 Lua 脚本(包含 SETNX + EXPIRE 两条指令)
-
方案四:SET 的扩展命令(SET EX PX NX)
-
方案五:SET EX PX NX + 校验唯一随机值,再释放锁
-
方案六: 开源框架:Redisson
-
方案七:多机实现的分布式锁 Redlock
什么是分布式锁
分布式锁其实就是,控制分布式系统不同进程共同访问共享资源的一种锁的实现。如果不同的系统或同一个系统的不同主机之间共享了某个临界资源,往往需要互斥来防止彼此干扰,以保证一致性。
我们先来看下,一把靠谱的分布式锁应该有哪些特征&#