千家信息网

springboot整合redis的方法是什么

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇文章主要讲解了"springboot整合redis的方法是什么",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"springboot整合redis的方
千家信息网最后更新 2025年12月03日springboot整合redis的方法是什么

这篇文章主要讲解了"springboot整合redis的方法是什么",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"springboot整合redis的方法是什么"吧!

概述

springboot通常整合redis,采用的是RedisTemplate的形式,除了这种形式以外,还有另外一种形式去整合,即采用spring支持的注解进行访问缓存 。

》准备工作

pom.xml文件:

redis.clients

jedis

2.7.3

org.springframework.data

spring-data-redis

1.7.2.RELEASE

org.springframework.boot

spring-boot-starter-redis

RELEASE

application.properties配置文件:

# REDIS (RedisProperties)

# Redis数据库索引(默认为0)

spring.redis.database=0

# Redis服务器地址

spring.redis.host=127.0.0.1

# Redis服务器连接端口

spring.redis.port=6379

# 连接池最大连接数(使用负值表示没有限制)

spring.redis.pool.max-active=8

# 连接池最大阻塞等待时间(使用负值表示没有限制)

spring.redis.pool.max-wait=-1

# 连接池中的最大空闲连接

spring.redis.pool.max-idle=8

# 连接池中的最小空闲连接

spring.redis.pool.min-idle=0

# 连接超时时间(毫秒)

spring.redis.timeout=0

Redis配置类

/**

* @author hulonghai

* redis配置类

*/

@Configuration

@EnableCaching

public class CacheConfig extends CachingConfigurerSupport{

@SuppressWarnings("rawtypes")

@Bean

public CacheManager cacheManager(RedisTemplate redisTemplate) {

RedisCacheManager rcm = new RedisCacheManager(redisTemplate);

// 多个缓存的名称,目前只定义了一个

rcm.setCacheNames(Arrays.asList("thisredis"));

//设置缓存过期时间(秒)

rcm.setDefaultExpiration(600);

return rcm;

}

@Bean

public RedisTemplate redisTemplate(RedisConnectionFactory factory) {

StringRedisTemplate template = new StringRedisTemplate(factory);

Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);

ObjectMapper om = new ObjectMapper();

om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);

om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);

jackson2JsonRedisSerializer.setObjectMapper(om);

template.setValueSerializer(jackson2JsonRedisSerializer);

template.afterPropertiesSet();

return template;

}

}

可以看出,我们这里主要配置了两个东西,cacheManager方法配置了一个缓存名称,它的名字叫做thisredis,当我们要在方法注解里面使用到它的时候,就要根据名称进行区分不同缓存。同时设置了缓

存的过期时间。redisTemplate则是比较常见的,我们设置了RedisTemplate,因此在代码里面,我们也可以通过@Autowired注入RedisTemplate来操作redis.

使用

接下来就是如何使用注解啦,这一步反而是最简单的。其实只用到了两个注解,@Cacheable和@CacheEvict。第一个注解代表从缓存中查询指定的key,如果有,从缓存中取,不再执行方法。如果没有则执

行方法,并且将方法的返回值和指定的key关联起来,放入到缓存中。而@CacheEvict则是从缓存中清除指定的key对应的数据。使用的代码如下:

@Cacheable(value="thisredis", key="'users_'+#id")

public User findUser(Integer id) {

User user = new User();

user.setUsername("hlhdidi");

user.setPassword("123");

user.setUid(id.longValue());

System.out.println("log4j2坏啦?");

logger.info("输入user,用户名:{},密码:{}",user.getUsername(),user.getPassword());

return user;

}

@CacheEvict(value="thisredis", key="'users_'+#id",condition="#id!=1")

public void delUser(Integer id) {

// 删除user

System.out.println("user删除");

}

可以看出,我们用@Cacheable的value属性指定具体缓存,并通过key将其放入缓存中。这里key非常灵活,支持spring的el表达式,可以通过方法参数产生可变的key(见findUser方法),也可以通过其指定在

什么情况下,使用/不使用缓存(见delUser方法)。

感谢各位的阅读,以上就是"springboot整合redis的方法是什么"的内容了,经过本文的学习后,相信大家对springboot整合redis的方法是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

缓存 方法 整合 注解 配置 时间 最大 可以通过 名称 形式 学习 两个 代码 内容 就是 情况 数据 文件 服务器 空闲 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 至少3年的现场网络技术支持经验 棋牌游戏软件开发扫雷 陕西戴尔服务器虚拟化解决方案 代理正在向epo服务器发送 山东企业软件开发市场报价 线下网络安全培训哪个好 数据库综合设计题 大连学软件开发的培训学校 上海 网络安全 服务器架构画图工具 有了数据中台自己还要数据库吗 肇庆通讯软件开发厂家直销 特斯拉用户数据网络安全法 网络安全 伦理问题 支付宝网络技术有限公司打款 物业管理软件开发环境写哪些 服务器安全设置工具 软件开发专业哪家好 上海智慧团建软件开发哪儿好 vb 代码新建数据库 如东网络安全宣传 分布式关系数据库创新 简短网络安全儿歌 我的世界服务器bag 2021大学学院网络安全宣传周 排序合并法 数据库 网络安全专业的视频素材 数据库系统中安全性控制方法 数据库技术是信息集成的工具 谷歌服务器是哪个公司的
0