首先来讨论两个问题,分别是缓存穿透和缓存雪崩 一、什么是缓存穿透?如何避免? 一般的缓存系统,都是按照key去查询缓存,如果不存在对应的value,就应该去后端系统查找(比如DB)。一些恶意的请求会故意查询不存在的key,请求量很大,就会对后端系统造成很大的压力。这就叫做缓存穿透。(只对于登录的恶意 ...
分类:
其他好文 时间:
2019-10-27 23:14:23
阅读次数:
146
通过setnx(set if not exists) 指令设置锁,调用 del 指令释放锁。 // 这里的冒号:就是一个普通的字符,没特别含义,它可以是任意其它字符,不要误解 > setnx lock:codehole true OK ... do something critical ... > ...
分类:
其他好文 时间:
2019-10-25 16:41:15
阅读次数:
93
前言 分布式锁一般有三种实现方式: 数据库乐观锁; 基于Redis的分布式锁; 基于ZooKeeper的分布式锁 本篇博客将介绍第二种方式,基于Redis实现分布式锁。 虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如何正 ...
分类:
编程语言 时间:
2019-10-24 09:48:24
阅读次数:
80
防止重复提交,主要是使用锁的形式来处理,如果是单机部署,可以使用本地缓存锁(Guava)即可,如果是分布式部署,则需要使用分布式锁(可以使用zk分布式锁或者redis分布式锁),本文的分布式锁以redis分布式锁为例。 一、本地锁(Guava) 1、导入依赖 2、自定义本地锁注解 3、本地锁注解实现 ...
分类:
编程语言 时间:
2019-10-23 20:07:44
阅读次数:
91
redis cluster redis cluster是Redis的分布式解决方案,在3.0版本推出后有效地解决了redis分布式方面的需求 自动将数据进行分片,每个master上放一部分数据 提供内置的高可用支持,部分master不可用时,还是可以继续工作的 支撑N个redis master no ...
分类:
其他好文 时间:
2019-10-23 16:38:05
阅读次数:
60
Redis分布式篇 1 为什么 需要 Redis 集群 1.1 为什么需要集群? 1.1.1 性能 ? Redis 本身的 QPS 已经很高了,但是如果在一些并发量非常高的情况下,性能还是会受到影响。这个时候我们希望有更多的 Redis 服务来完成工作。 1.1.2 扩展 ? 第二个是出于存储的考虑 ...
分类:
其他好文 时间:
2019-10-23 09:26:40
阅读次数:
138
问题 (1)redis如何实现分布式锁? (2)redis分布式锁有哪些优点? (3)redis分布式锁有哪些缺点? (4)redis实现分布式锁有没有现成的轮子可以使用? 简介 Redis(全称:Remote Dictionary Server 远程字典服务)是一个开源的使用ANSI C语言编写、 ...
分类:
编程语言 时间:
2019-10-04 09:40:17
阅读次数:
79
经过实验,独自使用shedlock没有问题,独自使用websocket也没有问题,但两个放在一起就有问题,大胆猜测问题出在springBoot的shedlock和websocket的底层,尝试解决无果后决定换一种实现方式,springboot的websocket+redis分布式锁实现分布式环境中两 ...
分类:
编程语言 时间:
2019-09-28 20:03:21
阅读次数:
354
redis分布式部署 - 概念:可以将一组程序执行在多台机器上(分布式机群),使其进行数据的分布爬取。 1.scrapy框架是否可以自己实现分布式? 其一:因为多台机器上部署的scrapy会各自拥有各自的调度器,这样就使得多台机器无法分配start_urls列表中的url。(多台机器无法共享同一个调 ...
分类:
编程语言 时间:
2019-09-28 00:36:22
阅读次数:
108
近来,分布式的问题被广泛提及,比如分布式事务、分布式框架、ZooKeeper、SpringCloud等等。本文先回顾锁的概念,再介绍分布式锁,以及如何用Redis来实现分布式锁。 一、锁的基本了解 首先,回顾一下我们工作学习中的锁的概念。 为什么要先讲锁再讲分布式锁呢? 我们都清楚,锁的作用是要解决 ...
分类:
其他好文 时间:
2019-09-26 14:52:16
阅读次数:
100