Spring Cache手动清理Redis缓存
这篇文章主要介绍了Spring Cache手动清理Redis缓存,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
注册cacheRedisTemplate
将 cache 的 RedisTemplate 注册为Bean
@Bean(name = "cacheRedisTemplate") public RedisTemplate cacheRedisTemplate(@Qualifier("jedisConnectionFactory") JedisConnectionFactory jedisConnectionFactory, @Qualifier("jedisYsfKeySerializer") RedisSerializer jedisYsfKeySerializer, @Qualifier("jedisYsfValueSerializer") RedisSerializer jedisYsfValueSerializer) { RedisTemplate cacheRedisTemplate = new RedisTemplate(); cacheRedisTemplate.setConnectionFactory(jedisConnectionFactory); cacheRedisTemplate.setEnableTransactionSupport(false); cacheRedisTemplate.setKeySerializer(jedisYsfKeySerializer); cacheRedisTemplate.setValueSerializer(jedisYsfValueSerializer); return cacheRedisTemplate; }
使用cacheRedisTemplate
那么在清除缓存的时候, 可以直接使用 cacheRedisTemplate .
.... @Autowired @Qualifier("cacheRedisTemplate") var cacheRedisTemplate : YsfRedisTemplate[String,Object] = _ ... cacheRedisTemplate.delete(s"cc.c.sta.real.in.day:$id-$start-$i")
这里是scala的语法 , java 同理
其他写缓存 , 查缓存 , 都一样操作 .
奇异用法
在 Mybatis 的 Dao 上加注解 .
@CacheEvict(value = CACHE_PREFIX,key = "#root.args[0]+'-'+#root.args[1]+'-'+#root.args[2]") int clearCache(@Param("id") Long id, @Param("start") Long start, @Param("type") Integer type) throws DataAccessException;
Mybatis的 sql 是如下内容:
<select id="clearCache" resultType="int"> select 1 </select>
这个操作并没有实质性的数据库操作 , 只是为了删除缓存 . 6666 ,不失为一种办法....
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
关于shiro中部分SpringCache失效问题的解决方法
1.问题抛出 今天在做Springboot和shiro集成时,发现一个严重的问题.部分service的缓存和事务失效,debug代码时,发现这些有问题的service实例都不是代理生成的,所以事务和缓存就失效了(事务和缓存依赖代理类实现).继续查问题,发现这些有问题的service全部被shiro的realm所依赖,所以怀疑是shiro影响了 所以做一下测试: shiro中用到的ResourceService public class LocalRealmService extends Real
-
spring整合redis缓存并以注解(@Cacheable、@CachePut、@CacheEvict)形式使用
maven项目中在pom.xml中依赖2个jar包,其他的spring的jar包省略: <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.8.1</version> </dependency> <dependency> <groupId>org.springfra
-
spring boot+spring cache实现两级缓存(redis+caffeine)
spring boot中集成了spring cache,并有多种缓存方式的实现,如:Redis.Caffeine.JCache.EhCache等等.但如果只用一种缓存,要么会有较大的网络消耗(如Redis),要么就是内存占用太大(如Caffeine这种应用内存缓存).在很多场景下,可以结合起来实现一.二级缓存的方式,能够很大程度提高应用的处理效率. 内容说明: 缓存.两级缓存 spring cache:主要包含spring cache定义的接口方法说明和注解中的属性说明 spring boot
-
SpringBoot 集成 Memcached的方法示例
Memcached 介绍 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信. 因为 Spring Boot 没有针对 Memcached 提供对应的组建包,因此需要我们自己来集成.官方推出的 Ja
-
配置Spring4.0注解Cache+Redis缓存的用法
前言: 目前公司项目在上一个技术架构的处理,已经搭建好了Redis,但redis只用在了做session的管理,然而 后台的对象缓存没有用上 1. redis 和 ehcache的区别: 简单了解了下,个人觉得 从部署上而言,redis更适合分布式部署,ehcache是在每台应用服务器上开辟一块内存做缓存,集群时还得考虑缓存的情况, redis就不需要考虑缓存了.单独部署在一台服务器中(也可以是在某一台应用服务器中) 2. 项目配置(spring mvc+maven+mybaits+redis)
-
浅谈SpringCache与redis集成实现缓存解决方案
缓存可以说是加速服务响应速度的一种非常有效并且简单的方式.在缓存领域,有很多知名的框架,如EhCache .Guava.HazelCast等.Redis作为key-value型数据库,由于他的这一特性,Redis也成为一种流行的数据缓存工具. 在传统方式下对于缓存的处理代码是非常臃肿的. 例如:我们要把一个查询函数加入缓存功能,大致需要三步. 一.在函数执行前,我们需要先检查缓存中是否存在数据,如果存在则返回缓存数据 二.如果不存在,就需要在数据库的数据查询出来. 三.最后把数据存放在缓存中,当
-
Spring boot redis cache的key的使用方法
在数据库查询中我们往往会使用增加缓存来提高程序的性能,@Cacheable 可以方便的对数据库查询方法加缓存.本文主要来探究一下缓存使用的key. 搭建项目 数据库 mysql> select * from t_student; +----+--------+-------------+ | id | name | grade_class | +----+--------+-------------+ | 1 | Simone | 3-2 | +----+--------+-----------
-
SpringBoot中Shiro缓存使用Redis、Ehcache的方法
SpringBoot 中配置redis作为session 缓存器. 让shiro引用 本文是建立在你是使用这shiro基础之上的补充内容 第一种:Redis缓存,将数据存储到redis 并且开启session存入redis中. 引入pom <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifac
-
Spring Cache手动清理Redis缓存
这篇文章主要介绍了Spring Cache手动清理Redis缓存,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 注册cacheRedisTemplate 将 cache 的 RedisTemplate 注册为Bean @Bean(name = "cacheRedisTemplate") public RedisTemplate cacheRedisTemplate(@Qualifier("jedisConnectionFac
-
Spring Cache和EhCache实现缓存管理方式
目录 1.认识 Spring Cache 2.认识 EhCache 3.创建SpringBoot与MyBatis的整合项目 3.1 创建数据表 3.2 创建项目 4.配置EhCache缓存管理器 4.1 创建 ehcache.xml 配置文件 4.2 配置缓存管理器 4.3 开启缓存功能 5.使用EhCache实现缓存管理 5.1 创建实体类(Entity层) 5.2 数据库映射层(Mapper层) 5.3 业务逻辑层(Service层) 5.4 控制器方法(Controller层) 5.5 显
-
实例详解Spring Boot实战之Redis缓存登录验证码
本章简单介绍redis的配置及使用方法,本文示例代码在前面代码的基础上进行修改添加,实现了使用redis进行缓存验证码,以及校验验证码的过程. 1.添加依赖库(添加redis库,以及第三方的验证码库) <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> </dependency&
-
基于Spring Cache实现Caffeine+Redis二级缓存
目录 一.聊聊什么是硬编码使用缓存? 二.Spring Cache简介 1.Cache接口 2.CacheManager接口 3.常用注解说明 三.使用二级缓存需要思考的一些问题? 四.Caffeine 简介 1.写入缓存策略 2.缓存值的清理策略 3.统计 4.高效的缓存淘汰算法 5.其他说明 五.基于Spring Cache实现二级缓存(Caffeine+Redis) 1.maven引入使用 2.application.yml 3.启动类上增加@EnableCaching 4.在需要缓存的方
-
window手动操作清理redis缓存的技巧总结
redis缓存知识点: 一.缓存穿透 缓存穿透是指查询一个缓存和数据库中都没有的数据,由于大部分缓存策略是被动加载的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义.用户不断发起请求,在流量大时,就可能对DB形成巨大的压力,利用不存在的key频繁攻击应用也是很大的问题. 二.缓存击穿 缓存击穿是指缓存中的一个热点Key(比如一个秒杀商品),在某个时间点过期的时候,恰好在这个时间点访问量剧增,对这个Key有大量的并发请求过
-
如何扩展Spring Cache实现支持多级缓存
为什么多级缓存 缓存的引入是现在大部分系统所必须考虑的 redis 作为常用中间件,虽然我们一般业务系统(毕竟业务量有限)不会遇到如下图 在随着 data-size 的增大和数据结构的复杂的造成性能下降,但网络 IO 消耗会成为整个调用链路中不可忽视的部分.尤其在 微服务架构中,一次调用往往会涉及多次调用 例如pig oauth2.0 的 client 认证 Caffeine 来自未来的本地内存缓存,性能比如常见的内存缓存实现性能高出不少详细对比. 综合所述:我们需要构建 L1 Caffeine
-
springboot集成spring cache缓存示例代码
本文介绍如何在springboot中使用默认的spring cache, 声明式缓存 Spring 定义 CacheManager 和 Cache 接口用来统一不同的缓存技术.例如 JCache. EhCache. Hazelcast. Guava. Redis 等.在使用 Spring 集成 Cache 的时候,我们需要注册实现的 CacheManager 的 Bean. Spring Boot 为我们自动配置了 JcacheCacheConfiguration. EhCacheCacheCo
-
Spring Cache整合Redis实现方法详解
导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>
-
spring的Cache注解和redis的区别说明
目录 spring Cache注解和redis区别 1.不支持TTL 2.内部调用 3.key的问题 Spring Cache注解+redis整合及遇到的坑 先介绍Spring Cache注解 配置Spring注解与Redis整合 我们在Spring-config.xml中来配置 来写RedisCache这个类,让其实现Cache接口 开始使用注解,我是把其作用在倒dao层中 运行结果 key的生成策略 spring Cache注解和redis区别 1.不支持TTL 即不能设置过期时间 expi
随机推荐
- div实现自适应高度的textarea实现angular双向绑定
- python文件操作相关知识点总结整理
- PowerShell中文件对象的属性方法总结
- Javascript实现真实字符串剩余字数提示的实例代码
- Swift中的访问控制和protected
- 在SAE上部署Python的Django框架的一些问题汇总
- PHP处理bmp格式图片的方法分析
- java使用poi读取excel内容方法实例
- jQuery的ready方法详解
- JavaScript获取页面中超链接数量的方法
- SqlSever 注释符 单行注释与多行注释
- vue2.x 父组件监听子组件事件并传回信息的方法
- Android高手进阶教程(二十六)之---Android超仿Path菜单的功能实现!
- jquery实现弹出层效果实例
- 浅谈javascript 迭代方法
- 一组单选按钮radio如何进行控制
- Java零基础教程之Windows下安装 JDK的方法图解
- 在Unity中实现动画的正反播放代码
- PHP+MYSQL 出现乱码的解决方法
- postgresql分页数据重复问题的深入理解