1. 核心代码: import redis.clients.jedis.Jedis;import java.util.Collections;public class RedisUtil { private static final String LOCK_SUCCESS = "OK"; priva ...
分类:
其他好文 时间:
2020-04-26 17:22:03
阅读次数:
91
写在前面 最近,很多小伙伴留言说,在学习高并发编程时,不太明白分布式锁是用来解决什么问题的,还有不少小伙伴甚至连分布式锁是什么都不太明白。明明在生产环境上使用了自己开发的分布式锁,为什么还会出现问题呢?同样的程序,加上分布式锁后,性能差了几个数量级!这又是为什么呢?今天,我们就来说说如何在高并发环境 ...
分类:
其他好文 时间:
2020-04-26 14:04:01
阅读次数:
63
引言 最近项目上线的频率颇高,连着几天加班熬夜,身体有点吃不消精神也有些萎靡,无奈业务方催的紧,工期就在眼前只能硬着头皮上了。脑子浑浑噩噩的时候,写的就不能叫代码,可以直接叫做Bug。我就熬夜写了一个bug被骂惨了。 由于是做商城业务,要频繁的对商品库存进行扣减,应用是集群部署,为避免并发造成库存超 ...
分类:
其他好文 时间:
2020-04-25 13:02:20
阅读次数:
69
日常的编码中,我们经常会遇到线程之间操作相同的资源导致并发 每一种开发技术或许都提供有代码级别的锁来避免这种并发问题,但是当服务器部署多个实例时,代码级别的锁时无法控制这样的并发的,这个时候我们遍可以通过Redis来控制功能对锁的获取,由于应用程序和Redis之间是通过网络来进行交流,无论是单机还是 ...
分类:
其他好文 时间:
2020-04-23 22:54:15
阅读次数:
82
zk实现分布式锁的3种方式 第1种 创建一个znode,如果创建成功,则获取到锁,操作完成,删除znode即可释放锁; 如果创建失败(抛出异常),说明锁被其它服务的线程持有,当前线程休眠一小会儿,之后重试,设置一个计数器,如果重试指定次数后还没有获取到锁,就放弃。 缺点:未获取到锁时重试多次,浪费资 ...
分类:
其他好文 时间:
2020-04-22 19:54:18
阅读次数:
63
引言 最近项目上线的频率颇高,连着几天加班熬夜,身体有点吃不消精神也有些萎靡,无奈业务方催的紧,工期就在眼前只能硬着头皮上了。脑子浑浑噩噩的时候,写的就不能叫代码,可以直接叫做Bug。我就熬夜写了一个bug被骂惨了。 由于是做商城业务,要频繁的对商品库存进行扣减,应用是集群部署,为避免并发造成库存超 ...
分类:
其他好文 时间:
2020-04-22 13:34:50
阅读次数:
60
引言最近项目上线的频率颇高,连着几天加班熬夜,身体有点吃不消精神也有些萎靡,无奈业务方催的紧,工期就在眼前只能硬着头皮上了。脑子浑浑噩噩的时候,写的就不能叫代码,可以直接叫做Bug。我就熬夜写了一个bug被骂惨了。由于是做商城业务,要频繁的对商品库存进行扣减,应用是集群部署,为避免并发造成库存超买超卖等问题,采用redis分布式锁加以控制。本以为给扣库存的代码加上锁lock.tryLock就万事大
分类:
其他好文 时间:
2020-04-22 11:40:50
阅读次数:
59
简单来说, Redis就是一个数据库, 只不过是非关系型数据库, 而且数据是存储在内存中的.因此Redis的速度也很快, 被广泛用于缓存方面. 同时也常被用来做分布式锁. Redis支持多种数据类型, 可以支持不同的场景应用. 为什么用Redis/为什么用缓存? 主要从高并发和高性能两点来看 高性能 ...
分类:
其他好文 时间:
2020-04-20 13:47:16
阅读次数:
56
写在前面 忘记之前在哪个群里有朋友在问:有出分布式锁的文章吗~@冰河?我的回答是:这周会有,也是【高并发】专题的。想了想,还是先发一个如何使用Redisson实现分布式锁的文章吧?为啥?因为使用Redisson实现分布式锁简单啊!Redisson框架是基于Redis实现的分布式锁,非常强大,只需要拿 ...
分类:
其他好文 时间:
2020-04-14 00:37:25
阅读次数:
82
Redis基础 缓存击穿、雪崩、穿透 集群高可用、哨兵、持久化、LRU 分布式锁、并发竞争、双写一致性 Redis常见面试题 ...
分类:
其他好文 时间:
2020-04-13 15:20:51
阅读次数:
57