千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:太原千锋IT培训  >  技术干货  >  springboot整合redis来实现缓存技术

springboot整合redis来实现缓存技术

来源:千锋教育
发布人:qyf
时间: 2023-04-23 17:01:14

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

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

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

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

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

  编写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();
    }
}

  使用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来实现缓存技术的基本步骤。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

draggable属性的用法

2023-05-17

原码反码补码分别是什么

2023-04-14

React的遮羞布

2023-01-31

最新文章NEW

html文档基本格式有哪些?

2023-05-19

变量的预解析

2023-01-31

Vue中常见的组件间通信方案及典型应用场景

2023-01-31

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>