springboot整合redis

对于java,常用的客户端有:

        Jedis,springDataRedis,Redission

Jedis:操作简单,适合入门

SpringDataRedis: spring必备,可以通过yml进行相应配置

Redission: Redis的分布式

本篇重点还是讲讲SpringDataRedis

首先,导入spring-data-redis依赖:

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

为了提升redis的性能,我们最好添加一下pool:

     <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
        </dependency>

依赖引入完毕,开始配置yml

spring:
  #    redis配置
  redis:
    #Redis服务器地址
    host: 
    #Redis服务器连接端口
    port: 6379
    #Redis数据库索引(默认为0)
    database: 0
    #连接超时时间(毫秒)
    timeout: 1800000
    lettuce:
      pool:
        max-active: 8 # 最大连接数
        max-idle: 8   #最大空闲连接
        min-idle: 0   #最小空闲连接
        max-wait: 100 #连接等待时间

整合完毕,就可以基本的使用它了,来个简单小test

 spring-data-redis提供一个RedisTemple对象来提供具体方法来进行具体的redis操作

对Sting的操作和对hash的操作:

自定义RedisTemple的序列化规则

 spring-data-redis它是可以对redistemple进行自定义的,这样我们就可以对Redistemple进行自定义的序列化规则

 @Bean
    public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory connectionFactory)
    {
        RedisTemplate<Object, Object> template = new RedisTemplate<>();
        template.setConnectionFactory(connectionFactory);

        FastJsonRedisSerializer serializer = new FastJsonRedisSerializer(Object.class);

        // 使用StringRedisSerializer来序列化和反序列化redis的key值
        template.setKeySerializer(new StringRedisSerializer());
//        值用Json来进行序列化value值
        template.setValueSerializer(serializer);

        // Hash的key也采用StringRedisSerializer的序列化方式
        template.setHashKeySerializer(new StringRedisSerializer());
        template.setHashValueSerializer(serializer);

        template.afterPropertiesSet();
        return template;
    }

我们可以将对象Json序列化,进行存储,但是,这样有什么缺点呢?我们来看:

在redis中,我们看到保存的Json序列化的对象多了一行

@class:com.example.pojo.People

这是因为为了在反序列化时,能知道最后反序列化出来的是哪个对象。

这样的缺点是:当数据量增大时,内存的花销很大!这显然是不经济的。

所以我们在自定义序列化规则的时候,应该将对象转成String,再保存

之后再调用Json转对象工具,转回来。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值