redis是什么? 是完全开源免费的,用c语言编写的,是一个单线程,高性能的(key/value)内存数据库,基于内存运行并支持持久化的nosql数据库 redis能干嘛? 主要是用来做缓存,但不仅仅只能做缓存,比如:redis的计数器生成分布式唯一主键,redis实现分布式锁,队列,会话缓存。 r ...
分类:
其他好文 时间:
2020-01-17 23:16:43
阅读次数:
75
1、队列、栈 2、双链表 3、MQ 4、分区锁-correntHashMap 实现 5、分布式锁 6、job-分块执行 7、redis、DB一致性分析 ...
分类:
其他好文 时间:
2020-01-17 11:47:12
阅读次数:
54
问题 项目采用 ,RedisTemplate中没有同时设置NX和EX的方法,如果使用 方法也就是NX,再设置过期时间 也就是EX,如果在设置EX时失败则会造成死锁。在jedis中提供了同时设置NX和EX的方法,这里通过RedisTemplate的 方法获取Jedis。 存在问题 解决方案可以可以参考 ...
分类:
编程语言 时间:
2020-01-16 10:31:21
阅读次数:
89
1、redis分布式锁的基本实现 redis加锁命令: 这个命令的作用是在只有这个key不存在的时候才会设置这个key的值(NX选项的作用),超时时间设为30000毫秒(PX选项的作用) 这个key的值设为“my_random_value”。这个值必须在所有获取锁请求的客户端里保持唯一。 SETNX ...
分类:
其他好文 时间:
2020-01-14 00:08:41
阅读次数:
123
分布式锁 在实际应用场景中,我们可能有多个worker,可能在一台机器,也可能分布在不同的机器,但只有一个worker可以同时持有一把锁,这个时候我们就需要用到分布式锁了。 这里推荐python的实现库,Redlock-py (Python 实现). 正常情况下,worker获得锁后,处理自己的任务 ...
分类:
编程语言 时间:
2020-01-14 00:07:43
阅读次数:
119
在多线程共享临界资源的场景下,分布式锁是一种非常重要的组件。 许多库使用不同的方式使用redis实现一个分布式锁管理。 其中有一部分简单的实现方式可靠性不足,可以通过一些简单的修改提高其可靠性。 这篇文章介绍了一种指导性的redis分布式锁算法RedLock,RedLock比起单实例的实现方式更加安 ...
分类:
编程语言 时间:
2020-01-13 23:31:57
阅读次数:
85
1.String 1)常用命令: value类型可以是:字符串,数字,二进制 2)应用: 分布式锁 计数器: 分布式全局序列: 2.Hash Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。Redis 中每个 hash 可以存 ...
分类:
其他好文 时间:
2020-01-13 22:06:38
阅读次数:
218
1、定义注解类 @Target({ ElementType.METHOD }) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface DistributedLock { //锁名称 String lockName() de ...
分类:
编程语言 时间:
2020-01-13 20:05:14
阅读次数:
150
Lock 分布式锁 1.安全属性:互斥,不管任何时候,只有一个客户端能持有同一个锁。 2.效率属性A:不会死锁,最终一定会得到锁,就算一个持有锁的客户端宕掉或者发生网络分区。 3.效率属性B:容错,只要大多数Redis节点正常工作,客户端应该都能获取和释放锁。 Redis 为什么基于故障切换的方案不 ...
分类:
其他好文 时间:
2020-01-12 15:23:12
阅读次数:
79
一、写在前面 之前写过一篇文章(《拜托,面试请不要再问我Redis分布式锁的实现原理》),给大家说了一下Redisson这个开源框架是如何实现Redis分布式锁原理的,这篇文章再给大家聊一下ZooKeeper实现分布式锁的原理。 同理,我是直接基于比较常用的Curator这个开源框架,聊一下这个框架 ...
分类:
其他好文 时间:
2020-01-10 15:41:51
阅读次数:
67