1.什么是分布式 分布式不是指必须把应用程序部署到不同的服务器 只要存在应用程序跨JVM就是分布式 2.什么时候使用分布式锁 应用之间存在共享资源的竞争就要使用分布式锁 3.什么时候使用分布式事务 需要保证数据库中的数据的一致性的时候,就需要使用分布式事务 4.都有哪些分布式锁 4.1. 数据库-乐 ...
分类:
其他好文 时间:
2020-07-29 15:31:57
阅读次数:
77
前言 基于Redis使用分布式锁在当今已经不是什么新鲜事了。本篇文章主要是基于我们实际项目中因为redis分布式锁造成的事故分析及解决方案。 背景:我们项目中的抢购订单采用的是分布式锁来解决的。 有一次,运营做了一个飞天茅台的抢购活动,库存100瓶,但是却超卖了!要知道,这个地球上飞天茅台的稀缺性啊 ...
分类:
其他好文 时间:
2020-07-29 14:59:15
阅读次数:
59
博主之前写了一篇Redis哨兵搭建,并没有对哨兵进行讲解,本篇填坑。 同时,也为博主写Redis分布式锁(二)做一些前置知识。 挖坑位置:Redis集群搭建(哨兵) Redis主从 在讲redis哨兵前,需要先简单讲解一下redis主从。 俗话说,鸡蛋放在一个篮子里容易碎,那就把鸡蛋复制一份,放到其 ...
分类:
其他好文 时间:
2020-07-21 22:48:51
阅读次数:
66
本文中案例都会在上传到git上,请放心浏览 git地址:https://github.com/muxiaonong/Spring-Cloud/tree/master/order-lock 本文会使用到 三台 redis 独立服务器,可以自行提前搭建好 前言 在Java中,我们对于锁会比较熟悉,常用的 ...
分类:
其他好文 时间:
2020-07-18 15:49:42
阅读次数:
60
先拿 setnx 来争抢锁,抢到之后,再用 expire 给锁加一个过期时间防止锁忘记了 释放。 这时候对方会告诉你说你回答得不错,然后接着问如果在 setnx 之后执行 expire 之前进程意外 crash 或者要重启维护了,那会怎么样? 这时候你要给予惊讶的反馈:唉,是喔,这个锁就永远得不到释 ...
分类:
其他好文 时间:
2020-07-14 16:24:40
阅读次数:
96
谈起redis锁,下面三个,算是出现最多的高频词汇: setnx redLock redisson setnx 其实目前通常所说的setnx命令,并非单指redis的setnx key value这条命令。一般代指redis中对set命令加上nx参数进行使用, set这个命令,目前已经支持这么多参数 ...
分类:
其他好文 时间:
2020-07-12 20:38:13
阅读次数:
68
首先,为了确保分布式锁可用,我们至少要确保锁的实现同时满足以下四个条件: 互斥性。在任意时刻,只有一个客户端能持有锁。 不会发生死锁。即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁。 具有容错性。只要大部分的Redis节点正常运行,客户端就可以加锁和解锁。 解铃还须系 ...
分类:
其他好文 时间:
2020-07-12 20:29:53
阅读次数:
65
Laravel Redis分布式锁的使用 创建锁 use Illuminate\Support\Facades\Cache; $lock = Cache::lock('foo', 10); if ($lock->get()) { // 处理业务逻辑 sleep(3); $lock->release( ...
分类:
其他好文 时间:
2020-07-09 22:22:13
阅读次数:
117
以下文章来源于微信公众号:程序员内点事 ,作者:程序员内点事 请大家关注原作者 1. 什么是限流?为什么要限流? 限流是保证系统高可用的重要手段!!!由于互联网公司的流量巨大,系统上线会做一个流量峰值的评估,尤其是像各种秒杀促销活动,为了保证系统不被巨大的流量压垮,会在系统流量到达一定阈值时,拒绝掉 ...
分类:
其他好文 时间:
2020-07-07 13:40:35
阅读次数:
46
1.通过官方文档查看相关的命令操作:http://www.redis.cn/commands.html 关键命令:setIfAbsent(String key,String value)对应官方文档的 setnx 解释:将key设置值为value,如果key不存在,这种情况下等同SET命令。 当ke ...
分类:
其他好文 时间:
2020-07-06 23:55:00
阅读次数:
80