![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Memcached、Redis、zookeeper分布式锁
清风不问烟雨
这个作者很懒,什么都没留下…
展开
-
Memcached的分布式琐
memcached是使用add命令,该命令只有lockKey不存在时,才能得到琐。Memcached 所有命令都是原子性的,并发下add 同一个KEY ,只会一个会成功。利用这个原理,可以先定义一个 锁 LockKEY ,add 成功的认为是得到锁。并且设置“超时”时间,保证宕机后,也不会死锁。在具体操作完后,判断是否此次操作已超时。如果超时则不删除锁,如果不超时则删除锁。原创 2017-10-11 15:56:32 · 174 阅读 · 0 评论 -
Redis 分布式锁
Redis 没有add 命令,但有SETNX(SET if Not eXists)若给定的 key 已经存在,则 SETNX不做任何动作。设置成功,返回 1 。设置失败,返回 0 。SETNX 命令不能设置过期时间,需要再使用 EXPIRE 命令设置过期时间。伪代码:123456789转载 2017-10-11 16:20:45 · 147 阅读 · 0 评论 -
基于zookeeper实现分布式锁
一、分布式锁介绍 分布式锁主要用于在分布式环境中保护跨进程、跨主机、跨网络的共享资源实现互斥访问,以达到保证数据的一致性。二、架构介绍 在介绍使用Zookeeper实现分布式锁之前,首先看当前的系统架构图 解释: 左边的整个区域表示一个Zookeep转载 2017-10-11 16:51:43 · 168 阅读 · 0 评论