缓存
Roger6650
这个作者很懒,什么都没留下…
展开
-
缓存雪崩及其解决方案
问题缓存雪崩: 缓存服务器挂掉,或者热点缓存失效,导致大量的请求访问DB数据库,导致数据库连接不够用或数据库处理不过来,从而导致系统不可用。 类比缓存击穿: 缓存雪崩产生的原因--缓存曾经存在,只是失效或者缓存服务器挂掉 而缓存击穿,是指访问缓存中必然不存在的数据,故意绕过缓存,直接访问数据库导致的...原创 2018-09-09 09:19:50 · 2819 阅读 · 0 评论 -
多级缓存架构开发 七 ( 给多级缓存开发添加注解功能 )
实现目的: 为了解决代码的侵入性问题,采用注解 + Spring Aop的方式来来实现,对项目进行缓存的可插拔性实现步骤: 1.导入jar包 在父模块的pom文件下添加 <dependencyManagement> <dependencies> <depen...翻译 2019-05-17 15:46:48 · 457 阅读 · 0 评论 -
多级缓存架构开发 八 ( 给多级缓存开发启动模块 )
实现目的: 其他任何项目想使用多级缓存功能时,只需要导入这个启动项目即可实现步骤: 1. 导入jar包 1.1) 父模块中导入 <dependencyManagement> <dependencies> <!--在此处添加Spring Boot自身的自动配置...翻译 2019-05-20 15:28:32 · 215 阅读 · 0 评论 -
多级缓存架构开发 四 ( 利用redis的pub/sub消息机制实现一级缓存的数据同步问题 )
实现目标: 利用redis的pub/sub的消息机制,实现一级缓存的删除和清空的,原因: 因为如果应用是分布式的系统,那么一级缓存的数据,是不能同步的,因此在清楚二级缓存的时候,利用redis的消息机制来实现分布式系统数据的同步;实现步骤: 1.定义消息对象的枚举类型package org.github....翻译 2019-05-13 15:32:31 · 829 阅读 · 0 评论 -
多级缓存架构开发 三 ( 使用redis作为二级缓存 )
1.导入redis的jar包 在父模块的pom文件下添加 <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.data</groupId>...翻译 2019-05-13 15:32:22 · 2795 阅读 · 0 评论 -
多级缓存架构开发 五 ( 创建缓存管理对象 )
实现目标: 项目中使用缓存,为了区分不同的缓存对象,会给每个缓存对象起一个名称或者定义一个唯一标识,创建缓存管理对象的目的,就是为了把所有的缓存对象集中维护,便于管理和操作实现步骤: 1) 创建缓存管理顶级接口package org.github.roger.manager;import org.github.roger.cache.ICac...翻译 2019-05-13 15:32:45 · 255 阅读 · 0 评论 -
多级缓存架构开发 二 ( 使用Caffeine作为一级缓存 )
1.导入caffeine的jar包 在父模块的pom文件中添加 <dependencyManagement> <dependencies> <dependency> <groupId>com.github.ben-manes.caffeine</g...翻译 2019-05-13 15:32:12 · 1165 阅读 · 0 评论 -
应用层缓存技术-Http的强制缓存和协商缓存
1、Http强制缓存 强制缓存流程: 在第一次访问服务器获取到数据后,在数据过期之前不在向服务器发起请求获取数据;因此实现此流程的核心就是如何知道数据什么时间过期。 强制缓存的过期时间是通过第一次访问服务器返回的响应头获取,在http1.0和http1.1版本中通过不同的响应头字段来判断。1.1) http1.0版本 通过 Ex...原创 2019-05-06 11:07:28 · 269 阅读 · 0 评论 -
多级缓存架构开发 一 (创建一个通用的缓存顶级接口)
实现思路: 1) 采用caffeine作为一级缓存,caffeine是一个高性能的Java缓存库,采用的是Window TinyLfu回收策略,提供了一个近乎最佳的缓存命中率;优点是数据就在应用内存中所以速度块;缺点是1)受应用内存限制,容量有限,2)没有持久化,重启服务后缓存数据会丢失3)分布式式环境下,缓存数据无法同步 ...翻译 2019-05-13 15:32:02 · 894 阅读 · 0 评论 -
多级缓存架构开发 六 ( 测试开发的框架 )
0.导入pom文件 父级模块的pom文件添加 <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> ...翻译 2019-05-13 15:32:59 · 278 阅读 · 0 评论