Spring Boot 整合 Redis 并设置序列化类型

1.Spring Boot 整合 Redis

1.1 导入依赖

如果在创建 Spring Boot 项目的时候没有考虑过使用 redis ,而后期要用 redis 的话。导入下面一个依赖就可。

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

1.2 配置链接属性

配置 redis 属性,用 application.xml 和 application.yml 都可以。这里我使用的是更简洁的 application.yml。

spring:
    redis:
      host: 127.0.0.1 #ip
      database: 0 #数据库名称,默认 db0
      password: 123456789 #密码
      port: 6379 ¥端口
      jedis:
        pool: #链接池设置
          max-idle: 8
          min-idle: 0
          max-active: 8

1.3 使用

RedisAutoConfiguration 为我们默认配置了 JedisConnectionFactory,RedisTemplate 以及 StringRedisTemplate,让我们可以直接的使用 Redis 作为数据储存。

    @Resource
    private RedisTemplate redisTemplate;

    @Resource
    private StringRedisTemplate stringRedisTemplate;

String Data Redis 为我们提供了 RedisTemplate 和 StringRedisTemplate 两个模版来进行数据操作,其中:StringRedisTemplate 只针对键值都是字符串的数据进行操作。

当我们的数据存储到 Redis 的时候,我们的键(key)和 值(value)都是通过 Spring 提供的 Serializer 序列化到数据可中的。

  • RedisTemplate 默认使用的是 JdkSerializationRedisSerializer
  • StringRedisTemplate 默认使用的是 StringRedisSerializer。

Spring Data JPA 为我们提供了下面的 Serializer

  1. GenericToStringSerializer
  2. Jackson2JsonRedisSerializer
  3. JdkSerializationRedisSerializer
  4. OxmSerializer
  5. StringRedisSerializer

2. 配置 RedisTemplate 序列化类型

Spring Boot 为我们自动配置了 RedisTemplate,而 RedisTemplate 使用的是 JdkSerializationRedisSerializer,这个对我们用 redis 图形化客户端很不直观,因为 JdkSerializationRedisSerializer 使用二进制形式储存数据,在此我们将自己配置 RedisTemplate 并定义 Serializer。
@SpringBootApplication
public class SpringBootDemoApplication {


    public static void main(String[] args) {
        SpringApplication.run(SpringBootDemoApplication.class, args);
    }


    /**
     * 设置 redisTemplate 的序列化设置
     * @param redisConnectionFactory
     * @return
     */
    @Bean
    public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
        // 1.创建 redisTemplate 模版
        RedisTemplate<Object, Object> template = new RedisTemplate<>();
        // 2.关联 redisConnectionFactory
        template.setConnectionFactory(redisConnectionFactory);
        // 3.创建 序列化类
        Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
        ObjectMapper om = new ObjectMapper();
        // 4.设置可见度
        om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
        // 5.启动默认的类型
        om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
        // 6.序列化类,对象映射设置
        jackson2JsonRedisSerializer.setObjectMapper(om);
        // 7.设置 value 的转化格式和 key 的转化格式
        template.setValueSerializer(jackson2JsonRedisSerializer);
        template.setKeySerializer(new StringRedisSerializer());
        template.afterPropertiesSet();
        return template;
    }

}

这样,我们从图形化客户端可以很直观的看出我们存储的数据。


若博客中有错误或者说的不好,请勿介意,仅代表个人想法。
csdn博客:https://blog.csdn.net/LNView
本文地址:https://blog.csdn.net/LNView/article/details/80777144

有问题或者喜欢的欢迎评论。

转载请注明出处!!!!!!

参考资料:
《Spring Boot 实战》

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值