spring boot redis 多库

背景:

        我使用redis多库的目的很简单,我将token 保存在0号库,至于其他的缓存信息我希望保存在1号库,我想到的是两种方案,一种是用原有的连接,进行库的切换,第二种就是干脆再建立一个Factory进行连接。个人比较看好第二种,因为第一种的话会在两个库之间来回切换,消耗性能,而且这多线程情况下是不安全的,加锁虽然能起到作用了,但这无疑又更加的消耗性能了,综上,选择再建工厂的方式。

使用条件:

      我使用的是jdk8 spring-boot-starter-data-redis版本是2.0.2,这个版本的差异非常重要,许多人用着用着结果就报错了。yml只配置了host,port用来做一下测试

      参考链接:https://blog.csdn.net/u011424470/article/details/80080944

     官方文档:https://docs.spring.io/spring-data/redis/docs/2.1.8.RELEASE/reference/html/

     像这位博主使用的版本应该是以前的,因为我在尝试的时候好些方法都已经过期了,而且还遇到了坑。创建RedisConnectionFactory有两种方式,一种是JedisConnectionFactory ,另外一种则是使用 lettuceConnectionFactory  ,很不幸的是JedisConnectionFactory我刚写入bean就报错,具体原因还有待分析,以下都以lettuceConnectionFactory来讲。

     官方文档里面写的都非常的简单

     

创建工厂不是目的,目的是用redisTemplate起到链接,要做存储,以下

@Bean(name = "redisTemplate")//负责存储token
public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory redisConnectionFactory) {//工厂默认创建
    RedisTemplate<String, String> redisTemplate = new RedisTemplate<String, String>();
    redisTemplate.setConnectionFactory(redisConnectionFactory);
    return redisTemplate;
}

@Bean(name = "jedisTemplate")//做查询缓存
public RedisTemplate<String, Object> jedisTemplate() {
    RedisStandaloneConfiguration config = new RedisStandaloneConfiguration();
    config.setDatabase(1);//默认0号库,现在这里是1号库
    //config.setPassword(RedisPassword.of(password);本地暂时没有密码
    LettuceConnectionFactory lettuceConnectionFactory = new LettuceConnectionFactory(config);//手动创建工厂,这样做的目的就是划分库

    lettuceConnectionFactory.setValidateConnection(true);
    lettuceConnectionFactory.afterPropertiesSet();
    RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>();
    redisTemplate.setConnectionFactory(lettuceConnectionFactory);
    redisTemplate.setKeySerializer(new StringRedisSerializer());
    redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer());
    return redisTemplate;
}

这就是具体的代码了,顺便提一下,在使用redisTemplate的时候序列化很重要,序列化很重要,序列化很重要,我因为这个问题折腾了半天。

看官网友情提示:

 

如果以上还没能什么帮助的话,请看官网吧。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值