缓存
缓存击穿【Redis 缓存】
缓存击穿 缓存击穿问题也叫热点 Key 问题,就是一个被高并发访问并且缓存重建业务较复杂的 key 突然失效了,无数的请求访问会在瞬间给数据库带来巨大的冲击。 解决方案: 互斥锁 逻辑过期 ......
缓存雪崩【Redis 缓存】
缓存雪崩 缓存雪崩是指在同一时段大量的缓存key同时失效或者Redis服务宕机,导致大量请求到达数据库,带来巨大压力。 解决方案: 给不同的 Key 的 TTL 添加随机值 利用 Redis 集群提高服务的可用性 给缓存业务添加降级限流策略 给业务添加多级缓存 ......
缓存穿透【Redis缓存】
缓存穿透 缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会失效,这些请求都会打到数据库。 解决方案: 1. 缓存空对象 优点:实现简单,维护方便 缺点: 额外的内存消耗 可能造成短期的不一致 2. 布隆过滤 优点:内存占用较少,没有多余的 key 缺点: 实现复杂 存在误判可 ......
Spring Bean生命周期之三级缓存循环依赖
[toc] # 1 三级缓存 在使用 `spring`框架的日常开发中, `bean`之间的循环依赖太频繁了, `spring`已经帮我们去解决循环依赖问题,对我们开发者来说是无感知的,下面具体分析一下 `spring`是如何解决`bean`之间循环依赖,为什么要使用到三级缓存,而不是二级缓存? [ ......
LRU缓存与LinkedHashMap源码
今天再刷LeetCode时,遇到了第146题LRU缓存。题目如下: ``` 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 int ge ......
【缓存】本地缓存、分布式缓存以及多级缓存
### 什么是本地缓存、分布式缓存以及多级缓存 - 本地缓存, 这个用得最多,使用个 HashMap, ConcurrentHashMap, 本地存储一些进程内频繁使用的变量。或者引入像Caffine 这种可以有过期的就更好了 - 分布式缓存:像 memcache, redis 这种也没什么好说的了 ......
MyBatis之一级缓存、二级缓存
## 1、一级缓存 跟踪BaseExecutor可以看到,在query方法中,实现了缓存逻辑,当缓存不存在的时候,则调用实现类中的doQuery。 创建一级缓存的KEY: 是如何对执行计划进行缓存并加速Prepared Statement性能的。 本文分享自华为云社区《执行计划缓存,Prepared Statement性能跃升的秘密》,作者: GaussDB 数据库。 引言 在数据库系统中,SQL(Structure ......
ABP - 缓存模块(1)
# 1. 与 .NET Core 缓存的关系和差异 ABP 框架中的缓存系统核心包是 [Volo.Abp.Caching](https://www.nuget.org/packages/Volo.Abp.Caching) ,而对于分布式缓存的支持,abp 官方提供了基于 Redis 的方案,需要安装 ......
3月5日周老师缓存面试题资料
找班主任,要周老师的路线发一下面试突击班,第一天开班有6000+人在线~!!!希望大家紧张起来,今年竞争尤其激烈,新来的同学要加把劲~!今天主题:缓存面试题 周老师提升面试成功率给到对方你有思想,有个人见解redis为什么快,TPS/QPS是多少,解决了项目什么问题?1,我讲的redis第一版,之后 ......
java map缓存数据自动过期
package ztest; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Timer; import java.u ......
Redis缓存中保存短信验证码
**实现步骤** 1. 在发送短信的方法中将短信验证码保存到redis中  2. 在登录成功后删除redis中的验 ......
146. LRU 缓存
主要是利用LinkedHashMap的功能 class LRUCache { int cap; LinkedHashMap<Integer, Integer> cache = new LinkedHashMap<>(); public LRUCache(int capacity) { this.ca ......
JetBrains系列IDE(Pycharm, PhpStorm, Goland, WebStorm...等)修改默认缓存路径
### 安装过程省略, 以下内容以`PyCharm`为例 1. 安装成功后打开软件安装路径下的`bin`目录;  > **论文原文:** > > [GL-Cache: Group- ......
从注册表中删除RDP连接缓存
打开注册表 计算机\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Terminal Server Client\Default 根据需要删除如下键值: 重启生效 ......
高并发下缓存失效问题--缓存穿透、雪崩、击穿
缓存穿透: 指查询一个一定不存在的数据,由于缓存是不命中,将去查询数据库,但是数据库也无此记录,我们没有将这次查询的null写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义 风险: 利用不存在的数据进行攻击,数据库瞬时压力增大,最终导致崩溃 解决: null结果缓存,并 ......
5、基于 request cache 请求缓存技术
Hystrix command 执行时 8 大步骤第三步,就是检查 Request cache 是否有缓存。 首先,有一个概念,叫做 Request Context 请求上下文,一般来说,在一个 web 应用中,如果我们用到了 Hystrix,我们会在一个 filter 里面,对每一个请求都施加一个 ......
6、基于本地缓存的 fallback 降级机制
1、fallback降级机制 hystrix调用各种接口,或者访问外部依赖,mysql,redis,zookeeper,kafka,等等,如果出现了任何异常的情况 比如说报错了,访问mysql报错,redis报错,zookeeper报错,kafka报错,error 对每个外部依赖,无论是服务接口,中 ......
C++文件流结构体序列化,并查集,LRU缓存
c语言中的文件操作中用fprintf将数据写入到文件中,用fscanf将文件读入内存中,而c++中也有ostream和istream作为键盘流输入,屏幕流输出,对于文件也有ofstream/istream来进行相关的操作. 如图: 图中表示将一个结构体的的数据输入到文件中,并从文件中读取数据,并用得 ......
如何防止缓存被击穿
# 在什么情况下缓存会被击穿 高并发应用场景中,当大量请求同时请求同个key,这个key便会失效了,这就使得数据库被超量的请求直接访问。此现象就是缓存击穿,其后果会导致数据库压力陡增。 # 使用singleflight阻止同时请求 请求1、2、3同时请求相同的key,singleflight机制只会 ......
如何实现线程安全的LRU缓存
# 如何实现线程安全的LRU缓存? ## 不考虑缓存大小 **方法1**:使用ConcurrentHashMap即可。并发度高。【推荐】 ```java class LRU { // 正确:之所以不直接使用ConcurrentHashMap,是因为要减少暴漏的接口 private Map cache ......
Kafka元数据缓存(metadata cache)
经常有人问的一个问题就是:Kafka broker到底是不是无状态的?网上有这样的说法: 正常情况下consumer会在消费完一条消息后线性增加这个offset。当然,consumer也可将offset设成一个较小的值,重新消费一些消息。因为offet由consumer控制,所以Kafka brok ......
Redis中的缓存穿透|缓存击穿|缓存雪崩
Redis是一种内存数据库,也就是说,它是一种存储在内存中的数据库. 相当于Redis是提供一种缓存服务,提供这种缓存服务的有很多种,包括Redis,MongoDB等,其中国内用的最多的最常见的可能就是Redis 既然是缓存服务,那么就可能存在缓存穿透,缓存击穿和缓存雪崩的现象存在,现在我们来分别详 ......
3种分页列表缓存方式,速收藏~
摘要:本文介绍了实现分页列表缓存的三种方式。 本文分享自华为云社区《分页列表缓存,你真的会吗》,作者: 勇哥java实战分享 。 1 直接缓存分页列表结果 显而易见,这是最简单易懂的方式。 我们按照不同的分页条件来缓存分页结果 ,伪代码如下: public List<Product> getPage ......