分布式锁原理 分布式锁,是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁。 使用setnx、get ...
分类:
其他好文 时间:
2019-06-23 20:51:59
阅读次数:
95
[TOC] redis 字符串(string)【需要掌握】 特点 一个键能存储512MB数据 string类型是二进制安全的,可以存储任何数据,比如jpg图片或序列化对象 redis字符串数据类型的相关命令用于管理redis字符串值,基本语法如下: 语法 1. ==set key values== ...
分类:
其他好文 时间:
2019-06-14 19:44:24
阅读次数:
95
在高并发的条件下许多地方都要用到分布式加锁, 传统的单体架构加锁synchronized, 以及无法满足多节点集群的模式了, 所以目前比较主流的应该用到第三方中间件来实现分布式加锁. Redis的setNX加锁 命令格式 将 key 的值设为 value,当且仅当 key 不存在。 若给定的 key ...
分类:
其他好文 时间:
2019-06-06 12:01:26
阅读次数:
117
zookeeper 使用的是zab协议,类似 raft 的 Strong Leader 模式 redis 的哨兵 在 崩溃选举的时候采用的是 raft的那一套term。 因为redis 采用的是异步数据副本的节点同步方式,所以在做分布式锁的时候可能会存在 setNx之后,没有同步到从节点,主节点崩溃 ...
分类:
其他好文 时间:
2019-06-05 20:03:34
阅读次数:
185
[toc] String应用场景 分布式锁 setnx key value,当key不存在时,将 key 的值设为 value ,返回1。若给定的 key 已经存在,则setnx不做任何动作,返回0。 当setnx返回1时,表示获取锁,做完操作以后del key,表示释放锁,如果setnx返回0表示 ...
分类:
其他好文 时间:
2019-06-04 22:13:02
阅读次数:
141
分布式锁 1. setnx(set if not exists) 如果设值成功则证明上锁成功,然后再调用del指令释放。 但是有个问题,如果逻辑执行到中间出现异常了,可能会导致 del 指令没有被调用,这样就会陷入死锁,锁永远得不到释放。 2. setnx(set if not exists) 加上 ...
分类:
其他好文 时间:
2019-05-17 14:04:07
阅读次数:
128
string (字符串) 是一种键值对的数据结构,定义一个唯一的key值来获取相应的value数据。 可以对 key 设置过期时间,到点自动删除,这个功能常用来控制缓存的失效时间。 如果 value 值是一个整数,还可以对它进行自增操作 list(列表) 相当于java里面的LinkedLis,意味 ...
分类:
其他好文 时间:
2019-05-17 14:02:50
阅读次数:
172
Redis_启动后杂项基础 Redis一共16个数据库 SELECT[0~15] 来切换数据库 命令起效返回1 不起效返回0 或者nil 或者error 异常... DBSIZE 查询数据的数 KEYS * 显示所有的key值.支持Ant风格 KEYS k? 只查询k1 k2 而不查询k11 KEY ...
分类:
系统相关 时间:
2019-04-28 09:44:53
阅读次数:
149
Redis的数据结构类型,指的是redis的值的value类型; Redis的常用数据结构类型:string,list,set,sortedSet,hash 一.sting的类型 string类型是redis最常见的数据结构类型,存储的值为字符串。 1.1String相关命令 set key val ...
分类:
其他好文 时间:
2019-04-21 20:15:37
阅读次数:
165
操作之String操作 set(name, value,ex=None,px=None,nx=False,xx=False) setnx(name,value) setex(name, value, time) psetex(name, time_ms, value) mset(\ args, \ ...
分类:
其他好文 时间:
2019-04-02 11:06:25
阅读次数:
174