分布式锁
不能说的秘密go
求知若饥,虚心若愚
展开
-
使用redis+lua脚本实现分布式锁
分布式锁的应用场景 当多个机器(多个进程)会对同一条数据进行修改时,并且要求这个修改是原子性的。这里有两个限定: 多个进程之间的竞争,意味着JDK自带的锁失效; 原子性修改,意味着数据是有状态的,修改前后有依赖。 本文将先介绍Redis的实现方式,后面笔者会介绍分布式锁的其他实现。 在学习Redis实现分布式锁的过程中,笔者首先参考了Redis的官方文档实现Red...原创 2018-04-15 00:05:30 · 6174 阅读 · 3 评论 -
Redis官方分布式锁的实现-Redlock实现原理
前文笔者介绍了目前市面上见的比较多的Redis+lua分布式锁的实现,大概有如下三个要点: set命令要用 setkey value px milliseconds nx;保证原子性 value要具有唯一性,释放锁时要验证value值,不能误解锁; 解锁要使用lua脚本,也是为了保证原子性 Redis官方也指出该方法有安全隐患就是在主从复制模式下会导致两个线程可能会同时持有一个锁,如果业务...原创 2019-09-05 23:22:46 · 8436 阅读 · 0 评论