首页 > 数据库 >springboot整合redis,连接两个redis

springboot整合redis,连接两个redis

时间:2023-08-29 23:02:19浏览次数:41  
标签:jedisConnectionFactory springboot redis Redis public RedisTemplate 连接 redisTempl

在 Spring Boot 中,可以使用 RedisTemplate 进行 Redis 的连接和操作。要连接多个 Redis 实例,你可以创建多个 RedisTemplate 实例,并通过配置不同的连接工厂来连接到不同的 Redis 实例。

首先,在 application.properties(或 application.yml)配置文件中添加 Redis 连接信息:

# 第一个 Redis 实例
spring.redis.host=127.0.0.1
spring.redis.port=6379

# 第二个 Redis 实例
spring.redis.second.host=127.0.0.1
spring.redis.second.port=6380

然后,创建两个 Redis 连接工厂和对应的 RedisTemplate:

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.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;

@Configuration
public class RedisConfig {

    @Bean
    public RedisConnectionFactory redisConnectionFactory() {
        JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory();
        jedisConnectionFactory.setHostName("127.0.0.1");
        jedisConnectionFactory.setPort(6379);
        // 其他连接工厂配置...

        return jedisConnectionFactory;
    }

    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
        redisTemplate.setConnectionFactory(connectionFactory);
        // 其他 RedisTemplate 配置...

        return redisTemplate;
    }

    @Bean
    public RedisTemplate<String, Object> secondRedisTemplate(RedisConnectionFactory connectionFactory) {
        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
        redisTemplate.setConnectionFactory(secondRedisConnectionFactory());
        // 其他 RedisTemplate 配置...

        return redisTemplate;
    }

    @Bean
    public RedisConnectionFactory secondRedisConnectionFactory() {
        JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory();
        jedisConnectionFactory.setHostName("127.0.0.1");
        jedisConnectionFactory.setPort(6380);
        // 其他连接工厂配置...

        return jedisConnectionFactory;
    }
}

现在你已经创建了两个 RedisTemplate 实例,分别连接到了不同的 Redis 实例。你可以通过在代码中注入这两个实例,并使用它们进行相应的操作。示例:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;

@Service
public class MyService {

    private final RedisTemplate<String, Object> redisTemplate;
    private final RedisTemplate<String, Object> secondRedisTemplate;

    @Autowired
    public MyService(RedisTemplate<String, Object> redisTemplate, RedisTemplate<String, Object> secondRedisTemplate) {
        this.redisTemplate = redisTemplate;
        this.secondRedisTemplate = secondRedisTemplate;
    }

    public void someMethod() {
        // 使用 redisTemplate 对第一个 Redis 实例进行操作
        redisTemplate.opsForValue().set("key1", "value1");

        // 使用 secondRedisTemplate 对第二个 Redis 实例进行操作
        secondRedisTemplate.opsForValue().set("key2", "value2");
    }
}

标签:jedisConnectionFactory,springboot,redis,Redis,public,RedisTemplate,连接,redisTempl
From: https://blog.51cto.com/AmbitionGarden/7281680

相关文章

  • 使Windows11支持同时多个用户远程桌面连接(RDP)
    参考:https://www.wyr.me/post/701一、配置远程桌面服务更改限制连接的数量将用户限制到单独的远程桌面服务会话(可选)二、为termsrv.dll增加修改权限C:\Windows\System32\termsrv.dll详情请参考:https://www.wyr.me/post/701三、停止RemoteDesktopServices服务打开......
  • redis
    redis-server.exeredis.windows.confredis-cli.exe-h127.0.0.1-p123456configgetrequirpassconfigsetrequirpasswx_123456_qzxauth"wx_123456_qzx"setmyKeyabcgetmyKey安装命令:redis-server.exe--service-installredis.windows.conf--loglevelve......
  • Springboot 如何使用事务来操作一些业务
    事务的介绍事务具有4个特性:原子性、一致性、隔离性、持久性。通常称为ACID特性。原子性(Atomicity): 一个事务是一个不可分割的工作单位,事务中包括的诸多操作要么都做,要么都不做。一致性(Consistency):事务必须使数据库从一个一致性状态变成另一个一致性状态隔离性(Isolation):一个事......
  • 使用第三方RDP(远程桌面)客户端远程连接Windows10/11
    一、打开「编辑组策略」并定位  二、指定RDP为安全层三、禁用「要求使用网络级别的身份验证……」......
  • Redis的五大数据类型的数据结构
    概述  Redis底层有六种数据类型包括:简单动态字符串、双向链表、压缩列表、哈希表、跳表和整数数组。这六种数据结构五大数据类型关系如下:String:简单动态字符串List:双向链表、压缩列表Hash:压缩列表、哈希表SortedSet:压缩列表、跳表Set:哈希表、整数数组       ......
  • 远程连接阿里云服务器的几种方式(包括Windows和linux系统)
    远程连接阿里云服务器的几种方式(包括Windows和linux系统)_远程登录阿里云_库博客的博客-CSDN博客远程连接Windows系统阿里云服务器:1、workbench远程连接方式点击“立即登陆”,然后输入Administrator用户的密码,即可登录云服务器。2、VNC连接方式输入远程连接密码后,按照提示......
  • 【NestJS系列】连接数据库及优雅地处理响应
    前言Node作为一门后端语言,当然也可以连接数据库,为前端提供CURD接口我们以mysql为例,自行安装mysqlTypeORMTypeORM是一个ORM框架,它可以运行在NodeJS、Browser、Cordova、PhoneGap、Ionic、ReactNative、Expo和Electron平台上,可以与TypeScript和JavaScript一起使用。......
  • Redis 教程 --- 高级
    Redis数据备份与恢复Redis SAVE 命令用于创建当前数据库的备份。 语法redisSave命令基本语法如下:redis127.0.0.1:6379>SAVE 实例redis127.0.0.1:6379>SAVEOK该命令将在 redis 安装目录中创建dump.rdb文件。 恢复数据如果需要恢复数据,只需将备份文件(dump.rdb)移......
  • Redis管道
    项目中可使用redispipeline优化批量redis操作。下面的程序判断批量redisKey是否存在:publicList<Object>hasRedisKey(List<String>redisKeyList){try{List<Object>resultList=redisTemplate.executePipelined(newSessionCallback<List<O......
  • 16、Flink 的table api与sql之连接外部系统_ 读写外部系统的连接器和格式以及Apache H
    (文章目录)本文介绍了ApacheHive连接器的使用,以具体的示例演示了通过java和flinksqlcli创建catalog。本文依赖环境是hadoop、zookeeper、hive、flink环境好用,本文内容以flink1.17版本进行介绍的,具体示例是在1.13版本中运行的(因为hadoop集群环境是基于jdk8的,flink1.17版本需......