zoukankan      html  css  js  c++  java
  • springboot redis的db动态切换没有作用

    springboot2.x以上版本默认采用lettuce,而SpringBoot1.5默认采用的是jedis

    //springboot2.x以上版本
    LettuceConnectionFactory connectionFactory = (LettuceConnectionFactory) redisTemplate.getConnectionFactory(); if (connectionFactory != null) { connectionFactory.setDatabase(切换到指定的db上); /** * 在重置db之后:connectionFactory.setDatabase(i); * 需要将链接刷新:connectionFactory.afterPropertiesSet(); */ connectionFactory.afterPropertiesSet(); this.redisTemplate.setConnectionFactory(connectionFactory); connectionFactory.resetConnection(); }
    //springboot1.x
    JedisConnectionFactory jedisConnectionFactory = (JedisConnectionFactory) stringRedisTemplate.getConnectionFactory(); jedisConnectionFactory.setDatabase(切换到指定的db上);
    jedisConnectionFactory.afterPropertiesSet();
    stringRedisTemplate.setConnectionFactory(jedisConnectionFactory);

    无法切换的原因:

      resetConnnection()方法只会释放Connection对象,RedisClient中的redisUrl对象的属性并未刷新,导致重新生成的Connection对象的DB值仍未改变,随意切换未生效,所以需要调用

    connectionFactory.afterPropertiesSet();刷新RedisClient
  • 相关阅读:
    P1587 [NOI2016]循环之美 杜教筛
    【学习笔记】省选动态规划类型选讲
    【模板】结构体重载高精度
    SP1716 GSS3
    SP1043 GSS1
    P1890 gcd区间 线段树
    【模板】(最小费用)最大流
    【模板】矩阵乘法
    P1073 最优贸易 DFS
    【2019.8.14】2019QB学堂DP图论班第一次考试 Problem C
  • 原文地址:https://www.cnblogs.com/xing-29391/p/14435877.html
Copyright © 2011-2022 走看看