当前位置: 首页 > 知识库问答 >
问题:

如何使用spring data redis连接到多个redis实例

楮庆
2023-03-14

我试图与一个springboot应用程序连接到2个不同的redis实例:一个用作数据库,一个只用作缓存。我添加了不同的连接工厂和不同名称的redis模板,我使用@Qualifer来链接它们。我试图禁用从自动配置类RedisAutoConfiguration,但没有工作。

我总是收到这个错误:

包装人:org。springframework。豆。工厂UnsatifiedPendencyException:创建名为“redisTemplate”的bean时出错,该bean在类路径资源[org/springframework/boot/autoconfigure/data/redis/RedisAutoConfiguration$RedisConfiguration.class]中定义:未满足的依赖项通过索引为0的构造函数参数表示[org.springframework.data.redis.connection.RedisConnectionFactory]:未定义类型为[org.springframework.data.redis.connection.RedisConnectionFactory]的符合条件的bean:应为单个匹配bean,但找到2:redisCacheFactory、redisCacheFactory;嵌套的异常是org。springframework。豆。工厂NonuniqueBeandDefinitionException:未定义类型为[org.springframework.data.redis.connection.RedisConnectionFactory]的符合条件的bean:应为单个匹配bean,但找到2:redisCacheFactory,redisJitFactory

你能给我任何关于如何实现这一点的提示吗?

提前谢谢!

共有1个答案

隗星驰
2023-03-14

问题是将连接工厂提取为bean。如果你在模板bean中声明它可以正常工作。以下对我有效:

<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate"
    p:defaultSerializer-ref="stringRedisSerializer">
    <property name="connectionFactory">
       <bean class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
        p:host-name="${redis.ip}" p:port="6379" p:use-pool="true"/>
    </property>
</bean> 

<bean id="redisTemplate2" class="org.springframework.data.redis.core.RedisTemplate"
    p:defaultSerializer-ref="stringRedisSerializer">
    <property name="connectionFactory">
       <bean class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
        p:host-name="${redis.ip2}" p:port="6379" p:use-pool="true"/>
    </property>
</bean> 

    <bean id="stringRedisSerializer"  class="org.springframework.data.redis.serializer.StringRedisSerializer"/>
 类似资料:
  • 问题内容: 我正在满足以下要求的应用程序(Spring): 从Redis Server1读取数据 从Redis Server2读取数据 从Redis Server3读取数据 和 将信息保存到MySQL。 有人可以给我们一个思路,使用Spring Data Redis连接到不同的Redis服务器。 获得了链接:http : //forum.spring.io/forum/spring- projec

  • 问题内容: 我是Redis的新手…我最近刚拿起Redisent来在PHP中使用Redis …并且我玩得很开心!但是,我注册了Redis服务,并一直在努力使用该服务… URI字符串如下: redis:// [用户名]:[pass] @ [服务器] .redistogo.com:[端口] / Redisent客户端只需输入主机名和端口…并且我没有地方输入用户名/密码…:-/我也一直在摆弄fsockop

  • 问题内容: 我有一个使用Java Servlet / JSP的应用程序。我的应用有多个客户端,但是每个客户端都有一个单独的数据库。所有数据库都具有相同的架构。我想确定用户登录系统时要使用哪个数据库连接。 例如,客户端A登录后,我确定客户端A属于数据库C,抓住了数据库C的连接,然后继续愉快地进行操作。 我正在将JPA与Hibernate一起用作我的JPA提供程序。是否可以使用多个持久性单元并在登录时

  • 下面的代码片段是从JoinedStreams的javadoc复制的 这两个流仅基于一个键(通过< code>t =计算)进行连接 我会问我如何基于多个键进行连接,例如,one.a = two.a和

  • 我在本地配置了redis sentinel,在两个不同的端口10001和10002上运行。我有相同的sentinel身份验证设置。 Redis哨兵配置 使用的JAR版本 Spring-data-redis:2.0.10。发布 莴苣(io.莴苣.莴苣芯):5.0.5.RELEASE 在尝试连接到redisSentinelConfiguration时,我一直收到NOAUTH身份验证请求错误 使用Spr

  • 我正在用Spring编写一个服务,并使用Spring AMQP连接到Rabbitmq。 我有两个rabbitmq集群,一个仅用于发布消息(消息通过联合插件发送到另一个集群),另一个集群用于声明最终用户将从中使用的队列。 节点位于aws lb后面,每个集群有一个lb。 我在代码中使用CachingConnectionFactory和RabbitTemboard、RabbitAdmin,我希望与所有节