spring boot整合redis序列化

spring boot整合redis序列化

引入依赖

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

application.yml配置

spring:
  redis:
    host: localhost
    port: 6379
    password: ****

序列化配置

@Configuration
public class RedisConfig {

   @Autowired
   private RedisConnectionFactory redisConnectionFactory;



    // 默认用的是用JdkSerializationRedisSerializer进行序列化的
    @Bean
    public RedisTemplate<String, Object> redisTemplate() {
        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
        // 注入数据源
        redisTemplate.setConnectionFactory(redisConnectionFactory);
        // 使用Jackson2JsonRedisSerialize 替换默认序列化
        Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = 
        						new Jackson2JsonRedisSerializer(Object.class);
        StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
        objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
        jackson2JsonRedisSerializer.setObjectMapper(objectMapper);
        // key-value结构序列化数据结构
        redisTemplate.setKeySerializer(stringRedisSerializer);
        redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
        // hash数据结构序列化方式,必须这样否则存hash 就是基于jdk序列化的
        redisTemplate.setHashKeySerializer(stringRedisSerializer);
        redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);
        // 启用默认序列化方式
        redisTemplate.setEnableDefaultSerializer(true);
        redisTemplate.setDefaultSerializer(jackson2JsonRedisSerializer);

        /// redisTemplate.afterPropertiesSet();
        return redisTemplate;
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,关于SpringBoot整合Redis配置的问题,我可以为您提供以下信息: 1. 首先需要在pom.xml文件中添加redis的依赖,如下所示: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> ``` 2. 在application.properties或者application.yml配置文件中配置Redis相关的参数,例如: ``` # Redis服务器地址 spring.redis.host=127.0.0.1 # Redis服务器连接端口 spring.redis.port=6379 # Redis服务器连接密码(如果没有设置密码则为空) spring.redis.password= # Redis数据库索引(默认为0) spring.redis.database=0 # 连接超时时间(毫秒) spring.redis.timeout=10000 ``` 3. 在SpringBoot中使用Redis时,可以使用SpringRedisTemplate类进行操作,例如: ``` @Autowired private RedisTemplate<String, String> redisTemplate; // 存储数据到RedisredisTemplate.opsForValue().set("key", "value"); // 从Redis中获取数据 String value = redisTemplate.opsForValue().get("key"); ``` 以上是关于SpringBoot整合Redis配置的一些基本信息,希望能对您有所帮助。 ### 回答2: Spring Boot整合Redis配置主要包括以下步骤: 1. 在pom.xml文件中添加RedisSpring Boot Redis依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> </dependency> ``` 2. 在application.properties或application.yml配置文件中配置Redis连接信息: ```properties spring.redis.host=127.0.0.1 spring.redis.port=6379 spring.redis.password= ``` 3. 创建Redis配置类,用于配置RedisTemplate和连接工厂: ```java @Configuration public class RedisConfig { @Value("${spring.redis.host}") private String host; @Value("${spring.redis.port}") private int port; @Value("${spring.redis.password}") private String password; @Bean public JedisConnectionFactory jedisConnectionFactory() { RedisStandaloneConfiguration configuration = new RedisStandaloneConfiguration(); configuration.setHostName(host); configuration.setPort(port); configuration.setPassword(RedisPassword.of(password)); return new JedisConnectionFactory(configuration); } @Bean public RedisTemplate<String, Object> redisTemplate() { RedisTemplate<String, Object> template = new RedisTemplate<>(); template.setConnectionFactory(jedisConnectionFactory()); template.setKeySerializer(new StringRedisSerializer()); template.setValueSerializer(new GenericJackson2JsonRedisSerializer()); return template; } } ``` 4. 在需要使用Redis的类中通过@Autowired注入RedisTemplate,并使用相应的方法进行操作,例如: ```java @Autowired private RedisTemplate<String, Object> redisTemplate; public void setObject(String key, Object value) { redisTemplate.opsForValue().set(key, value); } public Object getObject(String key) { return redisTemplate.opsForValue().get(key); } ``` 通过以上步骤,就完成了Spring Boot整合Redis的配置。可以通过注入RedisTemplate来使用Redis相关的方法,如set、get等。 ### 回答3: Spring Boot整合Redis的配置主要包括以下几个步骤: 1. 引入依赖:在pom.xml文件中添加Spring Boot提供的redis依赖。 ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> ``` 2. 配置Redis连接信息:在application.properties或application.yml文件中配置Redis的连接信息,包括主机名、端口号、密码等。 ```properties spring.redis.host=127.0.0.1 spring.redis.port=6379 spring.redis.password= ``` 3. 配置RedisTemplate:通过配置RedisTemplate来操作Redis,可以配置连接工厂、序列化方式等。 ```java @Configuration public class RedisConfig { @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) { RedisTemplate<String, Object> template = new RedisTemplate<>(); template.setConnectionFactory(connectionFactory); // 设置Key的序列化方式 template.setKeySerializer(new StringRedisSerializer()); // 设置Value的序列化方式 template.setValueSerializer(new GenericJackson2JsonRedisSerializer()); return template; } } ``` 4. 使用RedisTemplate操作Redis:在代码中通过@Autowired注入RedisTemplate,可以直接调用其方法来操作Redis。 ```java @Autowired private RedisTemplate<String, Object> redisTemplate; public void set(String key, Object value) { redisTemplate.opsForValue().set(key, value); } public Object get(String key) { return redisTemplate.opsForValue().get(key); } ``` 通过以上步骤,我们就可以在Spring Boot中成功地整合并配置Redis,然后通过RedisTemplate来进行相关的操作,如设置值、获取值等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值