springboot连接redis并动态切换database的实现方法

众所周知,redis多有个db,在jedis中可以使用select方法去动态的选择redis的database,但在springboot提供的StringRedisTemplate中确,没有该方法,好在StringRedisTemplate预留了一个setConnectionFactory方法,本文主为通过修改ConnectionFactory从而达到动态切换database的效果。

springboot连接redis

pom.xml文件中引入spring-boot-starter-redis,版本可自行选择

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-redis</artifactId>
    <version>1.3.8.RELEASE</version>
</dependency>

application.properties

#redis配置
spring.redis.database=0
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=pwd
spring.redis.timeout=0
spring.redis.pool.max-active=8
spring.redis.pool.max-idle=8
spring.redis.pool.max-wait=-1
spring.redis.pool.min-idle=0

TestCRedis.java

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = Application.class)
public class TestCRedis{

    protected static Logger LOGGER = LoggerFactory.getLogger(TestCRedis.class);
    @Autowired
    private StringRedisTemplate stringRedisTemplate;
    @Test
    public void t1(){
        ValueOperations<String, String> stringStringValueOperations = stringRedisTemplate.opsForValue();
        stringStringValueOperations.set("testkey","testvalue");
        String testkey = stringStringValueOperations.get("testkey");
        LOGGER.info(testkey);
    }
}

运行TestCRedis.t1(),控制台打印“testvalue”redis连接成功

redis动态切换database

首先使用redis-cli,在redis的0、1、2三个库中,分别设置test 的值,分别为;0、1、2

TestCRedis.java

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = Application.class)
public class TestCRedis{

    protected static Logger LOGGER = LoggerFactory.getLogger(TestCRedis.class);
    @Autowired
    private StringRedisTemplate stringRedisTemplate;
    @Test
    public void t1(){
        ValueOperations<String, String> stringStringValueOperations = stringRedisTemplate.opsForValue();
        stringStringValueOperations.set("testkey","testvalue");
        String testkey = stringStringValueOperations.get("testkey");
        LOGGER.info(testkey);
    }
    public void t2() {
        for (int i = 0; i <= 2; i++) {
            JedisConnectionFactory jedisConnectionFactory = (JedisConnectionFactory) stringRedisTemplate.getConnectionFactory();
            jedisConnectionFactory.setDatabase(i);
            stringRedisTemplate.setConnectionFactory(jedisConnectionFactory);
            ValueOperations valueOperations = stringRedisTemplate.opsForValue();
            String test = (String) valueOperations.get("test");
            LOGGER.info(test);
        }
}

运行TestCRedis.t2(),控制台分别打印 “0、1、2”,database切换成功

到此这篇关于springboot连接redis并动态切换database的文章就介绍到这了,更多相关springboot连接redis动态切换database内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • SpringBoot整合Mysql和Redis的详细过程

    目录 一.项目创建 1.1创建项目 1.2目录结构 1.3pom.xml配置文件 二.初始化数据库 三.初始化代码 3.1实体类entity 3.2Mapper接口类 3.3Redis工具类 3.4Service层 3.5Controller层 四.单元测试 4.1Respository和Service层单元测试 4.2Controller层接口测试 一.项目创建 1.1 创建项目 在IDEA中,File--New--Project--Spring Initializer 名称为springbo

  • spring boot整合redis主从sentinel方式

    目录 springboot整合redis主从sentinel 一主二从三sentinel配置 新建springboot工程,并加入Redis依赖 工程结构 修改application.properties配置文件 新建Redis服务 测试类 测试结果 redis哨兵模式sentinel与springboot集成 安装Redis集群 springboot整合redis主从sentinel 一主二从三sentinel配置 1.master:127.0.0.1:6379 2.slave1:127.0.

  • spring boot集成redisson的最佳实践示例

    目录 前言 集成jedis实例,xml方式 集成前引用的jar springbean配置xml 集成redisson实例,javabean的方式 集成前引入的jar javabean配置如下 提供实例化javabean application.properties添加如下配置 前言 本文假使你了解spring boot并实践过,非spring boot用户可跳过也可借此研究一下. redisson是redis的java客户端程序,国内外很多公司都有在用,如下, 和spring的集成中官方给出的实

  • 一起来看看springboot集成redis的使用注解

    目录 redis简介: 引入依赖: 编写application.properties文件 编写配置类: springboot的redis注解介绍 (1)缓存@Cacheable (2)缓存@CachePut (3)缓存@CacheEvict 测试 基本的功能: 总结 redis简介: Redis是当前比较热门的NOSQL系统之一,它是一个开源的使用ANSI c语言编写的key-value存储系统 (区别于MySQL的二维表格的形式存储.).和Memcache类似,但很大程度补偿了Memcache

  • springboot连接redis并动态切换database的实现方法

    众所周知,redis多有个db,在jedis中可以使用select方法去动态的选择redis的database,但在springboot提供的StringRedisTemplate中确,没有该方法,好在StringRedisTemplate预留了一个setConnectionFactory方法,本文主为通过修改ConnectionFactory从而达到动态切换database的效果. springboot连接redis pom.xml文件中引入spring-boot-starter-redis,

  • springboot连接Redis的教程详解

    创建springboot项目 在NoSQL中选择Redis 项目目录 pom.xml中还需要加入下面的jar包 org.springframework.boot spring-boot-starter-json 在application.properties文件中添加Redis服务器信息 spring.redis.host=192.168.5.132 spring.redis.port=6379 剩下4个test类,我直接以源码的方式粘出来,里面有些代码是非必须的,我保留了测试的验证过程,所以里

  • thinkphp3.2.3框架动态切换多数据库的方法分析

    本文实例讲述了thinkphp3.2.3框架动态切换多数据库的方法.分享给大家供大家参考,具体如下: 版本说明: thinkphp3.2.3 新增自定义行为类 文件位置:Application/Common/Behaviors/SwitchDbBehavior.class.php 文件内容: namespace Common\Behaviors; class SwitchDbBehavior { //私有库id,如何连接公有库则设置为share字符串 private $_privateId =

  • Nginx利用Lua+Redis实现动态封禁IP的方法

    一.背景 我们在日常维护网站中,经常会遇到这样一个需求,为了封禁某些爬虫或者恶意用户对服务器的请求,我们需要建立一个动态的 IP 黑名单.对于黑名单之内的 IP ,拒绝提供服务. 本文给大家介绍的是Nginx利用Lua+Redis实现动态封禁IP的方法,下面话不多说了,来一起看看详细的介绍吧 二.架构 实现 IP 黑名单的功能有很多途径: 1.在操作系统层面,配置 iptables,拒绝指定 IP 的网络请求: 2.在 Web Server 层面,通过 Nginx 自身的 deny 选项 或者

  • Android实现动态切换组件背景的方法

    本文所述的程序实现的功能为在软件中动态的选择组件背景,系统皮肤,自定义吐司背景等. 为实现这一要求,就需要用到安卓中的SharedPrefence的功能,首先在设置里面写一个控件,设置一个点击监听器,点击的时候显示一个Alert选择弹窗,让你进行选择,对这个弹窗再设置一个点击监听器(onItemListener),点击到具体某个的时候,把对应的点击id保存到sahredprefence里面去,这样,其他地方就可以从这里取得设置里选择的值,进行动态个性化处理. 具体代码如下: 1.设置选择的操作:

  • react-native动态切换tab组件的方法

    在APP中免不了要使用tab组件,有的是tab切换,也有的是tab分类切换. 这些组件分成下面两种. 第一种非常简单,同时大多数第三方组件都能达到效果.这里重点讲述第二种,我们要让第二种组件不仅能左右滑动,同时还能够在点击的时候自动滑动,将点击的位置滑动到正中间. 准备 我们先来分析一波.一个滑动组件在APP上是一种什么状态. 这里可以看出,tab组件需要考虑到长度超过APP的屏幕,并且在超过之后能够滑动. 同时计算出当前位置需要滑动多少距离才能够将位置居中. 需要滑动的位置=点击位置的左边距-

  • SpringBoot初步连接redis详解

    在初次用springboot连接redis的时候查看官方文档和一些博客会发现配置文件非常的多,这就导致了在学习的开始的时候是没有体验的,其实利用springboot连接redis的时候并不需要那么多的配置 首先开启redis服务器: 然后在springboot里面添加配置文件: # Redis数据库索引(默认为0) spring.redis.database=0 # Redis服务器地址 spring.redis.host=localhost # Redis服务器连接端口 spring.redi

  • springboot 如何使用jedis连接Redis数据库

    springboot 使用jedis连接Redis数据库 1. 在 pom.xml 配置文件中添加依赖 <!-- redis 依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!-- jedis 依赖

  • springboot中mybatis多数据源动态切换实现

    目录 多数据源配置引入 动态数据源路由实现 动态数据源切换使用 案例源码 在开发中,动态数据源配置还是用的比较多的,比如在多数据源使用方面,又或者是在多个DB之间切换方面.这里给出一个动态数据源的配置方案,两个DB均以mysql为例. 多数据源配置引入 mybatis和mysql在springboot中的引入这里就不在说了,不了解的可以参见springboot中mysql与mybatis的引入. 数据源配置如下: datasource: master: type: com.alibaba.dru

  • mybatis多数据源动态切换的完整步骤

    笔者主要从事c#开发,近期因为项目需要,搭建了一套spring-cloud微服务框架,集成了eureka服务注册中心. gateway网关过滤.admin服务监控.auth授权体系验证,集成了redis.swagger.jwt.mybatis多数据源等各项功能. 具体搭建过程后续另写播客介绍.具体结构如下: 在搭建过程集成mybatis的时候,考虑到单一数据源无法满足实际业务需要,故结合c#的开发经验,进行多数据源动态集成. mybatis的多数据源可以采用两种方式进行,第一种是分包方式实现,这

随机推荐