全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

springboot整合redis来实现缓存技术

发布时间:2023-06-27 13:37:00
发布人:zyh

  Spring Boot是一个快速开发的框架,而Redis是一个基于内存的高性能缓存数据库。在Spring Boot中,可以使用Spring Boot的自动配置来整合Redis来实现缓存技术。下面是实现步骤:

  1.添加Redis依赖 在pom.xml中添加Redis依赖:  

Copy code<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

  2.配置Redis连接信息 在application.properties中配置Redis连接信息:  

# Redis连接信息
spring.redis.host=localhost
spring.redis.port=6379
spring.redis.password=
spring.redis.database=0
spring.redis.timeout=30000

  3.编写Redis缓存配置类 创建一个RedisConfig类,用来配置Redis缓存:  

@Configuration
@EnableCaching
public class RedisConfig extends CachingConfigurerSupport {

/**
* Redis连接工厂
*/

@Bean
public RedisConnectionFactory redisConnectionFactory() {
JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory();
jedisConnectionFactory.setHostName("localhost");
jedisConnectionFactory.setPort(6379);
jedisConnectionFactory.setPassword("");
jedisConnectionFactory.setDatabase(0);
return jedisConnectionFactory;
}

/**
* Redis模板
*/

@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(redisConnectionFactory);
// 设置key序列化方式
redisTemplate.setKeySerializer(new StringRedisSerializer());
// 设置value序列化方式
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
return redisTemplate;
}

/**
* Redis缓存管理器
*/

@Bean
public CacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) {
RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig()
.entryTtl(Duration.ofSeconds(30)); // 设置缓存时间
return RedisCacheManager.builder(redisConnectionFactory)
.cacheDefaults(redisCacheConfiguration).build();
}
}

  4.使用Redis缓存 在需要缓存的方法上添加@Cacheable注解即可:  

@Service
public class UserService {

@Autowired
private UserRepository userRepository;

/**
* 根据ID查询用户
*/

@Cacheable(cacheNames = "userCache", key = "#id")
public User getUserById(Long id) {
return userRepository.findById(id).orElse(null);
}
}

  在以上示例中,我们定义了一个名为userCache的缓存,缓存的key为方法的参数id,缓存时间为30秒。当第一次调用getUserById方法时,会从数据库中查询用户,并将查询结果缓存到Redis中。当下次调用getUserById方法时,会从Redis中读取缓存的结果。

  这就是使用Spring Boot整合Redis来实现缓存技术的基本步骤。

#springboot整合redis

相关文章

PUE是什么?

PUE是什么?

2023-10-15
补码是什么?

补码是什么?

2023-10-15
架构治理是什么?

架构治理是什么?

2023-10-15
强化学习中,GAE和TD(lambda)的区别是什么?

强化学习中,GAE和TD(lambda)的区别是什么?

2023-10-15

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取