redis分布式锁
阿鹏哥哥01
这个作者很懒,什么都没留下…
展开
-
redis分布式锁 golang使用记录
1.为什么需要redis分布式锁?世界服无状态服务器,玩家数据处理过程不一定落地到哪个节点的协程,这时候为了保证数据的一致性,就需要有redis分布式锁来锁定数据,保证同个数据只能在一个协程处理实现分布式锁要满足3点:多进程可见,互斥,可重入。1多进程可见:所有操作数据的节点进程都能连接锁对应的redis集群;2互斥:各个进程之间持有锁是互斥的;我们可以通过redis的setnx实现,只有第一次执行的才会成功并返回1,其它情况返回0。那么问题来了,同一个进程内怎么办呢?当然是进程内也加锁..原创 2021-11-24 15:11:52 · 783 阅读 · 0 评论 -
redis分布式锁与redsync库源码分析
redsync是redis官方推荐的go版本分布式锁实现,标准的官方redlock算法实现,阅读了下源码并顺便复习一下redis分布式锁原理。一. redlock算法单点场景首先来看单redis实例的场景,这是集群模式的基础。这种场景下实现分布式锁比较简单加锁各节点通过set key value nx ex即可,如果set执行成功,则表明加锁成功,否则失败,其中value为随机串,用来判断是否是当前应用实例加的锁;nx用来判断该key是否存在以实现排他特性,ex用来指定锁的过期时间,避免死锁转载 2021-07-07 17:54:54 · 387 阅读 · 0 评论