关于Jedis和lettuce以及springDataRedis的一些区别

本文介绍了SpringDataRedis作为Jedis和Lettuce的封装,简化Redis操作。讨论了公司不用Jedis的原因,以及SpringDataRedis的依赖与使用步骤,包括RedisTemplate和StringRedisTemplate的选择。还提到了配置Redis连接工厂和使用数据库连接池的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1:三者其实都是用来操作redis的

2:springDataRedis是对Jedis和lettuce的一系列封装,简化了很多方法

3:公司里面之所以不怎么用Jedis也是因为其指令比较繁琐难以记忆,不如就用简化了的springDataRedis

4:使用springDataRedis 时,首先要导入springDataRedis的依赖,然后导入Jedis或者lettuce,如果是Jedis,需要再导入slf4j-simple

5:springDataRedis操作Redis提供了2个模板,只需要将任何一个扔到容器中就可以使用

   RedisTemplate:可以操作任何类型

   StringRedisTemplate:专门操作字符串

具体使用:先扔到容器中:

@Bean
    public RedisTemplate redisTemplate(){
        RedisTemplate redisTemplate = new RedisTemplate();
        return redisTemplate;
    }

然后发现执行不了,这时需要去配置一下redis的连接工厂

因为redisConnectionFactory是个接口,我导入的又是jedis,所以用jedis的连接工厂

@Bean
    public RedisConnectionFactory redisConnectionFactory(){
        JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory();
        return jedisConnectionFactory;
    }

所以这个时候需要在模板中加入连接工厂:

@Bean
    public RedisTemplate redisTemplate(){
        RedisTemplate redisTemplate = new RedisTemplate();
        redisTemplate.setConnectionFactory(redisConnectionFactory());
        return redisTemplate;
    }

6:操作后发现几个问题:使用redisTemplate可以存储任何类型,存值取值没有任何影响,但是通过可视化插件查看,默认是看不懂的(因为springDataRedis使用的是默认的序列化器 默认JDK的序列化器)

   所以其实可以把redisTemplate换成stringRedisTemplate

@Bean
    public StringRedisTemplate stringRedisTemplate(){
        StringRedisTemplate stringRedisTemplate = new StringRedisTemplate();
        stringRedisTemplate.setConnectionFactory(redisConnectionFactory());
        return stringRedisTemplate;
    }

StringRedisTemplate这种方式,默认的value一般是字符串,此时存储不会乱码

7:最后你会发现你需要用到数据库连接池,所以要配置一下:

@Bean
    public JedisPoolConfig jedisPoolConfig(){
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxTotal(50);
        jedisPoolConfig.setMaxIdle(50);
        return jedisPoolConfig;
    }

这样一来,连接工厂的配置也需要更改一下:

@Bean
public RedisConnectionFactory redisConnectionFactory(){
    JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory(jedisPoolConfig());
    return jedisConnectionFactory;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值