web项目中,只需要配置 redis 的IP,端口,用户名和密码就可以使用redis作为缓存了,不需要在在java 代码中配置redisConfig,redisConfig只是作为缓存配置的辅助,比如自定义缓存的key命名,设置缓存序列化的类型,设置缓存过期时间,分别对应下面的单个方法: 下面的,缓存名称为user.key,该缓存会在redis中存一个key集合,对应的缓存key为 com.neo.web.UserControllergetUsers com.neo.web.UserContro…
废话不多说 说下思路:使用aop注解,在Service实现类添加需要用到redis的方法上,当每次请求过来则对其进行拦截,如果是查询则从redis进行get key,如果是update则删除key,防止脏数据或者历史数据出现.建议aop不懂的同学或者SPEL也不太熟悉的先去看看资料再回过来看,会事半功倍. 1.首先贴上核心注解类 @Retention(RetentionPolicy.RUNTIME) @Target({ ElementType.METHOD }) public @interfac…
第07课:WebFlux 中 Redis 实现缓存 前言 首先,补充下上一篇的内容,RedisTemplate 实现操作 Redis,但操作是同步的,不是 Reactive 的.自然,支持 Reactive 的操作类为 ReactiveRedisTemplate,下面我们写个小案例. ReactiveRedisTemplate 在上一篇工程中,新建 CityWebFluxReactiveController 类,路由为 /city2 开头. @RestController @RequestMap…
缓存用于提升系统的性能,特别适用于一些对资源需求比较高的操作.本文介绍如何基于spring boot cache技术,使用caffeine作为具体的缓存实现,对操作的结果进行缓存. demo场景 本demo将创建一个web应用,提供两个Rest接口.一个接口用于接受查询请求,并有条件的缓存查询结果.另一个接口用于获取所有缓存的数据,用于监控缓存的内部状态. 可以看到这次查询耗时3秒左右. 可以看到我们的查询结果已被缓存.这里将一次查询的结果缓存了两份,具体技术细节后面介绍. 接下来介绍具体dem…
最近负责教育类产品的架构工作,两位研发同学建议:"团队封装的Redis客户端可否适配Spring Cache,这样加缓存就会方便多了" . 于是边查阅文档边实战,收获颇丰,写这篇文章,想和大家分享笔者学习的过程,一起品味Spring Cache设计之美. 1 硬编码 在学习Spring Cache之前,笔者经常会硬编码的方式使用缓存. 举个例子,为了提升用户信息的查询效率,我们对用户信息使用了缓存,示例代码如下: @Autowire private UserMapper userMap…
摘要 日常开发中,需要用到各种各样的框架来实现API.系统的构建.作为程序员,除了会使用框架还必须要了解框架工作的原理.这样可以便于我们排查问题,和自定义的扩展.那么如何去学习框架呢.通常我们通过阅读文档.查看源码,然后又很快忘记.始终不能融汇贯通.本文主要基于Spring Cache扩展为例,介绍如何进行高效的源码阅读. SpringCache的介绍 为什么以Spring Cache为例呢,原因有两个 Spring框架是web开发最常用的框架,值得开发者去阅读代码,吸收思想 缓存是企业级应用开…
摘要 日常开发中,需要用到各种各样的框架来实现API.系统的构建.作为程序员,除了会使用框架还必须要了解框架工作的原理.这样可以便于我们排查问题,和自定义的扩展.那么如何去学习框架呢.通常我们通过阅读文档.查看源码,然后又很快忘记.始终不能融汇贯通.本文主要基于Spring Cache扩展为例,介绍如何进行高效的源码阅读. SpringCache的介绍 为什么以Spring Cache为例呢,原因有两个 Spring框架是web开发最常用的框架,值得开发者去阅读代码,吸收思想 缓存是企业级应用开…
Spring Cache 缺陷 Spring Cache 是一个非常优秀的缓存组件. 但是在使用 Spring Cache 的过程当中,小黑同学也遇到了一些痛点. 比如,现在有一个需求:通过多个 userId 来批量获取用户信息. 方案 1 此时,我们的代码可能是这样: List<User> users = ids.stream().map(id -> { return getUserById(id); }) .collect(Collectors.toList()); @Cacheab…
目录 Cache API及默认提供的实现 demo 依赖包安装 定义实体类.服务类和相关配置文件 Cache注解 启用Cache注解 @CachePut @CacheEvict @Cacheable 运行流程 @Caching 示例 基本原理 注意和限制 基于 proxy 的 spring aop 带来的内部调用问题 @CacheEvict 的可靠性问题 非 public 方法问题 问题及解决方案 参考资料 正文 回到顶部 Cache API及默认提供的实现 Spring提供的核心Cache接口…
随笔分类 - Java缓存相关 主要记录memcached.redis.guava.Spring Cache的使用 第十二章 redis-cluster搭建(redis-3.2.5) 摘要: redis集群技术 redis2.x使用客户端分片技术 redis3.x使用cluster集群技术 一.环境 os:centos7 ip:10.211.55.4 redis:3.2.5 gem-redis:3.2.2 二.搭建集群 1.本机下载redis-3.2.5.tar.gz redis官网:h阅读全文…