• springboot项目中配置redis


    当在 Java 项目中使用 Redis 时,特别是在 Spring Boot 项目中使用 Redis,下面是一个详细的教程,涵盖了 Redis 的配置和使用。

    在 Spring Boot 项目中配置和使用 Redis

    步骤 1:添加 Redis 依赖

    在你的 Spring Boot 项目的 pom.xml 文件中,添加 Redis 相关的依赖项:

    <dependencies>
        
        
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-data-redisartifactId>
        dependency>
    dependencies>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    这将添加 Spring Boot Redis Starter 依赖项,以便在项目中使用 Redis。

    步骤 2:配置 Redis 连接信息

    在 Spring Boot 项目中,可以通过在 application.propertiesapplication.yml 文件中配置 Redis 连接信息。

    使用 application.properties 配置文件:

    application.properties 文件中添加以下配置:

    # Redis 连接信息
    spring.redis.host=127.0.0.1
    spring.redis.port=6379
    spring.redis.password=your_password
    
    • 1
    • 2
    • 3
    • 4
    使用 application.yml 配置文件:

    application.yml 文件中添加以下配置:

    # Redis 连接信息
    spring:
      redis:
        host: 127.0.0.1
        port: 6379
        password: your_password
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    请确保将上述配置中的 your_password 替换为你实际的 Redis 密码。如果 Redis 服务器没有设置密码,则可以省略 spring.redis.password 配置。

    步骤 3:创建 Redis 配置类

    创建一个名为 RedisConfig 的配置类,用于配置 RedisTemplate 和连接工厂。

    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.data.redis.connection.RedisConnectionFactory;
    import org.springframework.data.redis.core.RedisTemplate;
    import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
    import org.springframework.data.redis.serializer.StringRedisSerializer;
    
    @Configuration
    public class RedisConfig {
    
        // 从配置文件中读取Redis主机信息
        @Value("${spring.redis.host}")
        private String redisHost;
    
        // 从配置文件中读取Redis端口信息
        @Value("${spring.redis.port}")
        private int redisPort;
    
        // 配置Redis连接工厂
        @Bean
        public RedisConnectionFactory redisConnectionFactory() {
            // 创建Redis的单机配置
            RedisStandaloneConfiguration config = new RedisStandaloneConfiguration(redisHost, redisPort);
            // 返回Lettuce连接工厂
            return new LettuceConnectionFactory(config);
        }
    
        // 配置RedisTemplate
        @Bean
        public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
            // 创建RedisTemplate实例
            RedisTemplate<String, Object> template = new RedisTemplate<>();
            // 设置连接工厂
            template.setConnectionFactory(connectionFactory);
            // 设置默认的序列化器为GenericJackson2JsonRedisSerializer,用于序列化键和值为JSON格式
            template.setDefaultSerializer(new GenericJackson2JsonRedisSerializer());
            // 设置键的序列化器为StringRedisSerializer
            template.setKeySerializer(new StringRedisSerializer());
            // 设置值的序列化器为GenericJackson2JsonRedisSerializer
            template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
            // 返回配置好的RedisTemplate实例
            return template;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45

    上述配置类使用 Lettuce 作为 Redis 连接工厂,并配置了 RedisTemplate,使用 JSON 序列化器来序列化键和值。

    步骤 4:使用 RedisTemplate 进行操作

    在你的代码中,你可以使用 RedisTemplate 进行各种操作,如存储键值对、获取值、删除键等。

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.data.redis.core.RedisTemplate;
    import org.springframework.stereotype.Service;
    
    @Service
    public class MyService {
    
        private final RedisTemplate<String, Object> redisTemplate;
    
        @Autowired
        public MyService(RedisTemplate<String, Object> redisTemplate) {
            this.redisTemplate = redisTemplate;
        }
    
        public void setValue(String key, Object value) {
            // 使用RedisTemplate的opsForValue()方法获取ValueOperations接口实例,然后调用set()方法存储键值对
            redisTemplate.opsForValue().set(key, value);
        }
    
        public Object getValue(String key) {
            // 使用RedisTemplate的opsForValue()方法获取ValueOperations接口实例,然后调用get()方法根据键获取值
            return redisTemplate.opsForValue().get(key);
        }
    
        public void deleteKey(String key) {
            // 调用RedisTemplate的delete()方法根据键删除对应的键值对
            redisTemplate.delete(key);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    上述示例代码展示了一个名为 MyService 的服务类,它使用 RedisTemplate 进行键值对的存储、获取和删除操作。

    请确保在你的代码中使用适当的注解(如 @Service@Autowired 等)来注入 RedisTemplate 实例并进行相应的操作。

  • 相关阅读:
    学点设计模式,盘点Spring等源码中与设计模式的那些事,给所有的设计模式来个大总结
    JVM和Java体系结构
    安全关键软件开发与审定——DO-178C标准实践指南阅读笔记六——软件需求
    openvpn使用
    Day02-IDEA使用方式&基本语法
    手把手教你搭建ELK-新手必看-第一章:搭建ES
    回收站不见了怎么恢复?一招把回收站的图标找回来!
    常见优化器总结
    前端npm打包及报错解决
    【每日一题】找到字符串中所有字母异位词
  • 原文地址:https://blog.csdn.net/weixin_59367964/article/details/132608738