写在前面 redis辣么多数据结构,这么多命令,具体一点,都可以应用在什么场景呢?用来解决什么具体的问题? 分布式锁 redis是网络单线程的,它只有一个线程负责接受请求,这个特性即降低了redis本身的开发成本,也提高了redis的可用性。 分布式环境下,数据一致性问题一直是一个比较重要的话题,分 ...
分类:
其他好文 时间:
2019-08-22 19:21:10
阅读次数:
110
使用redisson做分布式锁 分布式锁 在java中单体应用中,我们如果想要保证一个接口或者服务、方法当下只有一个线程在运行,我们可以通过JDK提供的Lock、Semaphore、同步锁等多种方式实现只有一个线程在运行。 在微服务系统中,我们的单体应用会变成多个节点,只靠JDK本身的锁只能控制一个 ...
分类:
编程语言 时间:
2019-08-20 11:10:07
阅读次数:
116
为什么要有Zookeeper? 电视里经常会有一些狗血的设定,队长和副队长一起出去执行任务,执行完任务后副队长回来报到了,但是队长可能因为天气原因导致航班延期了,暂时回不来,这个时候副队长左等右等还等不到队长回来,而且副队长担心队长如果出事了,下面的队员没有人约束,大家可能就会松懈下来,副队长等了一 ...
分类:
其他好文 时间:
2019-08-20 00:45:36
阅读次数:
89
分布式锁有几种实现形式 n个线程同时并发-countdown zk配置中心,watch机制底层 zk分布式锁 并发的实践 说说springcloud组件 自己实现一个生产者、消费者 java 基本类型与包装类型 redis底层zset实现 mysql索引底层说一下 B+树 自平衡 myisam和in ...
分类:
其他好文 时间:
2019-08-19 23:11:43
阅读次数:
98
普通实现 说道Redis分布式锁大部分人都会想到:setnx+lua,或者知道set key value px milliseconds nx。后一种方式的核心实现命令如下: - 获取锁(unique_value可以是UUID等) SET resource_name unique_value NX ...
分类:
其他好文 时间:
2019-08-18 22:12:46
阅读次数:
89
上一篇写的是mongo分布式锁的bug, 发现网上使用mongo实现分布式锁方案有bug, 目前我还找到解决方案, 建议大家还是使用redis来实现 具体思路还是利用redis的setnx方法的安全性, 同一时刻永远只有一个线程能set成功. 加锁代码如下: ...
分类:
其他好文 时间:
2019-08-15 21:01:12
阅读次数:
107
本文带你深入理解redis如何构建高并发场景下的分布式锁
分类:
其他好文 时间:
2019-08-11 21:23:51
阅读次数:
121
悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操 ...
分类:
其他好文 时间:
2019-08-11 17:22:13
阅读次数:
104
写一个定时任务,然后把demo放在三台机器上,定时推送信息,客户端保证只能接收到一条 ...
分类:
其他好文 时间:
2019-08-11 14:45:46
阅读次数:
60
一、前言 分布式锁一般有三种实现方式: 1. 数据库乐观锁; 2. 基于Redis的分布式锁; 3. 基于ZooKeeper的分布式锁。 本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本 ...
分类:
其他好文 时间:
2019-08-09 13:31:15
阅读次数:
96