返回顶部
首页 > 资讯 > 精选 >Redis怎么配置多个数据库
  • 183
分享到

Redis怎么配置多个数据库

2023-06-29 15:06:58 183人浏览 安东尼
摘要

这篇文章主要介绍“Redis怎么配置多个数据库”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Redis怎么配置多个数据库”文章能帮助大家解决问题。前言redis 默认有 0-16 号数据库,一般我们

这篇文章主要介绍“Redis怎么配置多个数据库”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Redis怎么配置多个数据库”文章能帮助大家解决问题。

前言

redis 默认有 0-16 号数据库,一般我们操作redis时,用的是 0号数据库,但是有时我们的项目想同时操作多个数据库,又不想每次访问其它库数据时 select 切换数据库,这样太繁琐。

因此我们需要配置多个Jedis Client,但是jedis是容易阻塞,效率不太好,所以我这边采用了 Lettuce Client,它是 Reactive 的连接方式,效率比较高。但是怎么使用到 Lettuce Client,其实一般我们添加  spring-boot-starter-data-redis  依赖,通过RedisTemplate 去使用Redis的功能时,当版本很高的时候默认RedisTemplate底层用的就是通过Lettuce Client 去建立连接和操作数据。

一、添加pom 依赖

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

二、多数据源的配置和添加到spring容器

下面我的截图使用了四个数据源,分别是1,2,3,4号库。

1)新建一个configuration 配置类

2)new RedisStandaloneConfiguration(host, port); 初始化一个Redis配置,并接下来选择好库号。

3)初始化一个 LettuceConnectionFactory 。

4)实例化一个 RedisTemplate ,并设置键值序列化的方式,这里key和value都是字符串的,所以序列化器选择  StringRedisSerializer。

5)给 RedisTemplate 设置第三步创建的 LettuceConnectionFactory,并以@Bean注解注入到spring容器中,使用时直接通过方法名字在spring容器中查找,装配到引用它的实例中。

import io.lettuce.core.resource.ClientResources;import io.lettuce.core.resource.DefaultClientResources;import org.apache.commons.pool2.impl.GenericObjectPoolConfig;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.data.redis.connection.RedisConnectionFactory;import org.springframework.data.redis.connection.RedisPassWord;import org.springframework.data.redis.connection.RedisStandaloneConfiguration;import org.springframework.data.redis.connection.lettuce.LettuceClientConfiguration;import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;import org.springframework.data.redis.connection.lettuce.LettucePoolinGClientConfiguration;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.data.redis.serializer.StringRedisSerializer;import org.springframework.util.ObjectUtils; import java.time.Duration;  @Configurationpublic class RedisDatasourceConfiguration {     @Value("${redis.isCleanRedisCache:false}")    private String cleanRedisCache;    @Value("${redis.host:127.0.0.1}")    public String host;    @Value("${redis.port:6379}")    public Integer port;    private String password;     @Value("${redis.timeout:2000}")    public Integer timeout;    public Integer maxIdle = 16;    public Integer minIdle = 5;    public Integer maxTotal = 30;      @Bean    public RedisTemplate<String, String> stringRedisTemplate1() {        RedisStandaloneConfiguration configuration = new RedisStandaloneConfiguration(host, port);        configuration.setDatabase(1);        if (!ObjectUtils.isEmpty(password)) {            RedisPassword redisPassword = RedisPassword.of(password);            configuration.setPassword(redisPassword);        }        return createRedisTemplate(creatFactory(configuration));    }     @Bean    public RedisTemplate<String, String> stringRedisTemplate2() {        RedisStandaloneConfiguration configuration = new RedisStandaloneConfiguration(host, port);        configuration.setDatabase(2);        if (!ObjectUtils.isEmpty(password)) {            RedisPassword redisPassword = RedisPassword.of(password);            configuration.setPassword(redisPassword);        }        return createRedisTemplate(creatFactory(configuration));    }    @Bean    public RedisTemplate<String, String> stringRedisTemplate3() {        RedisStandaloneConfiguration configuration = new RedisStandaloneConfiguration(host, port);        configuration.setDatabase(3);        if (!ObjectUtils.isEmpty(password)) {            RedisPassword redisPassword = RedisPassword.of(password);            configuration.setPassword(redisPassword);        }        return createRedisTemplate(creatFactory(configuration));    }    @Bean    public RedisTemplate<String, String> stringRedisTemplate4() {        RedisStandaloneConfiguration configuration = new RedisStandaloneConfiguration(host, port);        configuration.setDatabase(4);        if (!ObjectUtils.isEmpty(password)) {            RedisPassword redisPassword = RedisPassword.of(password);            configuration.setPassword(redisPassword);        }        return createRedisTemplate(creatFactory(configuration));    }     @Bean    public RedisTemplate<String, String> stringRedisTemplate5() {        RedisStandaloneConfiguration configuration = new RedisStandaloneConfiguration(host, port);        configuration.setDatabase(5);        if (!ObjectUtils.isEmpty(password)) {            RedisPassword redisPassword = RedisPassword.of(password);            configuration.setPassword(redisPassword);        }        return createRedisTemplate(creatFactory(configuration));    }     private RedisTemplate<String, String> getSerializerRedisTemplate(){        RedisTemplate<String, String> redisTemplate = new RedisTemplate<>();        redisTemplate.seTKEySerializer(new StringRedisSerializer());        redisTemplate.setHashKeySerializer(new StringRedisSerializer());        redisTemplate.setHashValueSerializer(new StringRedisSerializer());        return redisTemplate;    }     private RedisTemplate createRedisTemplate(RedisConnectionFactory redisConnectionFactory) {        RedisTemplate<String, String> redisTemplate = getSerializerRedisTemplate();        redisTemplate.setConnectionFactory(redisConnectionFactory);        redisTemplate.afterPropertiesSet();        return redisTemplate;    }    private GenericObjectPoolConfig getGenericObjectPoolConfig(){        GenericObjectPoolConfig genericObjectPoolConfig = new GenericObjectPoolConfig();        genericObjectPoolConfig.setMaxTotal(maxTotal);        genericObjectPoolConfig.setMinIdle(minIdle);        genericObjectPoolConfig.setMaxIdle(maxIdle);        genericObjectPoolConfig.setMaxWaitMillis(timeout);        return genericObjectPoolConfig;    }     private LettuceConnectionFactory creatFactory(RedisStandaloneConfiguration configuration){        LettucePoolingClientConfiguration.LettucePoolingClientConfigurationBuilder builder = LettucePoolingClientConfiguration.builder();        builder.poolConfig(getGenericObjectPoolConfig()); //        LettuceClientConfiguration.LettuceClientConfigurationBuilder builder = LettuceClientConfiguration.builder();//        builder.clientResources(clientResources());//        builder.commandTimeout(Duration.ofSeconds(3000));        LettuceConnectionFactory connectionFactory = new LettuceConnectionFactory(configuration, builder.build());        connectionFactory.afterPropertiesSet();        return connectionFactory;    }}

三、使用方式

Redis怎么配置多个数据库

这里引用是2号库,即上面通过@Bean 加载到spring容器中的。

关于“Redis怎么配置多个数据库”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: Redis怎么配置多个数据库

本文链接: https://lsjlt.com/news/325509.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Redis怎么配置多个数据库
    这篇文章主要介绍“Redis怎么配置多个数据库”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Redis怎么配置多个数据库”文章能帮助大家解决问题。前言redis 默认有 0-16 号数据库,一般我们...
    99+
    2023-06-29
  • django单个app多数据库怎么配置
    在Django中,可以为单个app配置多个数据库。以下是配置单个app多数据库的步骤: 在settings.py中定义多个数据库连...
    99+
    2024-03-11
    django 数据库
  • Redis操作多个数据库的配置的方法实现
    目录前言一、添加pom 依赖二、多数据源的配置和添加到spring容器中三、使用方式结语:前言 redis 默认有 0-16 号数据库,一般我们操作redis时,用的是 0号数据库,...
    99+
    2024-04-02
  • Django项目怎么配置连接多个数据库
    今天小编给大家分享一下Django项目怎么配置连接多个数据库的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一个APP对应一个...
    99+
    2023-06-30
  • 网站怎么配置redis连接数据库
    要配置Redis连接数据库,需要进行以下步骤:1. 安装Redis:首先需要安装Redis数据库,可以从Redis官方网站(http...
    99+
    2023-08-30
    redis 数据库
  • Redis使用命令行与多数据库配置
    一、Redis发送命令的两种方式 redis-cli -h localhost -p 6379redis-cli ping 返回pong 证明正常 二、命令返回值 1、状态回复,如p...
    99+
    2024-04-02
  • maven配置怎么多个仓库
    在Maven配置文件(settings.xml)中可以配置多个仓库。以下是配置多个仓库的步骤: 打开Maven配置文件(setti...
    99+
    2023-10-23
    maven
  • 为什么redis支持多个数据库
    为什么redis支持多个数据库?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。注意:Redis支持多个数据库,并且每个数据库的数据是隔离的不...
    99+
    2024-04-02
  • plsql怎么配置多个数据源切换
    在PL/SQL中配置多个数据源切换可以使用以下方法:1. 使用DBLink:在PL/SQL中可以使用DBLink来配置多个数据源切换...
    99+
    2023-10-19
    plsql
  • redis有多少个默认数据库
    小编给大家分享一下redis有多少个默认数据库,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!redis下,数据库是由一个整数索引标识,而不是由一个数据库名称。默认情况下,一个客户端连接到数据库...
    99+
    2024-04-02
  • 缓存数据库Redis——Redis部署与配置
    关系型数据库与非关系型数据库 关系型数据库: 一个机构化的数据库,创建在关系模型基础上,一般面向于记录包括oracle、mysql、sqlserver、db2 非关系型数据库: 除了主流的关系型数据库...
    99+
    2024-04-02
  • redis数据库位置怎么设置
    要设置Redis数据库的位置,您需要编辑Redis的配置文件redis.conf。1. 找到并打开Redis的配置文件redis.c...
    99+
    2023-09-09
    redis数据库
  • CentOS 7安装配置Redis数据库
    Redis就是一种基于key-value的非关系型数据库。这里我将介绍Redis在CentOS 7下如何安装配置。 Redis源码获取进入Redis官网获取Redis最新稳定版下载地址http:/...
    99+
    2024-04-02
  • Redis多个数据库的示例分析
    小编给大家分享一下Redis多个数据库的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Redis多个数据库注意:Redis支持多个数据库,并且每个数据库的数据是隔离的不能共享,并且...
    99+
    2024-04-02
  • redis怎么缓存整个数据库
    要将整个数据库缓存到Redis中,可以使用Redis的持久化机制。Redis提供了两种持久化方法:RDB(Redis Databas...
    99+
    2023-08-23
    redis 数据库
  • navicat怎么配置数据库
    navicat 数据库配置步骤:连接到数据库服务器(选择类型、输入连接信息)。创建或选择数据库(展开服务器节点,“创建数据库”或“刷新”)。设置数据库属性(右键单击数据库,“属性”)。创...
    99+
    2024-04-24
    mysql oracle navicat
  • Springboot2.0配置JPA多数据源连接两个mysql数据库方式
    目录1. 目录结构及配置2. 配置文件3. DataSourceConfigurer类4. 主数据源配置5. 从数据源配置6.User实体类模板7.dao层模板8.service模板...
    99+
    2024-04-02
  • Redis数据库的安装配置方法
    redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,...
    99+
    2022-06-04
    数据库 方法 Redis
  • java多数据源怎么配置
    在Java中配置多数据源可以通过以下步骤进行:1. 导入相关的依赖包,如`spring-boot-starter-jdbc`、`dr...
    99+
    2023-10-09
    java
  • springboot怎么配置多数据源
    在Spring Boot中配置多个数据源可以通过以下步骤来实现: 在pom.xml文件中添加Spring Boot对多数据源的支...
    99+
    2023-10-23
    springboot
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作