当前位置: 首页 > 面试题库 >

使用spring-data-redis 1.7.0.M1时如何配置redis-cluster

夏侯弘量
2023-03-14
问题内容

我使用spring-data-redis版本1.7.0.M1和jedis版本2.8.0

<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
    <property name="connectionFactory" ref="redisConnectionFactory"></property>
    <property name="keySerializer">
        <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/>
    </property>
    <property name="hashKeySerializer">
        <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/>
    </property>
    <property name="valueSerializer">
        <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/>
    </property>
    <property name="hashValueSerializer">
        <bean class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer"/>
    </property>
</bean>

并使用【redisTemplate.opsForValue()。get(“ foo”)】进行测试

抛出异常

 org.springframework.dao.InvalidDataAccessApiUsageException: MOVED 12182 192.168.1.223:7002; nested exception is redis.clients.jedis.exceptions.JedisMovedDataException: MOVED 12182 192.168.1.223:7002

使用spring-data-redis 1.7.0.M1时如何配置redis-cluster?


问题答案:

基本上,所需要做的只是在中设置群集节点的初始集合RedisClusterConfiguration并将其提供给JedisConnectionFactoryLettuceConnectionFactory

@Configuration
class Config {

    List<String> clusterNodes = Arrays.asList("127.0.0.1:30001", "127.0.0.1:30002", "127.0.0.1:30003");

    @Bean
    RedisConnectionFactory connectionFactory() {
      return new JedisConnectionFactory(new RedisClusterConfiguration(clusterNodes));
    }

    @Bean
    RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) {

      // just used StringRedisTemplate for simplicity here.
      return new StringRedisTemplate(factory);
    }
}

spring启动将提供配置属性(spring.redis.cluster.nodesspring.redis.cluster.max- redirects)在下一版本的Redis与分类工作。有关详细信息,请参见commit /
166a27

所述弹簧数据实例存储库中已包含的弹簧数据Redis的集群支持的例子。



 类似资料:
  • 我使用spring data redis 1.7.0版。M1和绝地2.8.0版这是我的配置 并使用[redisTemplate.opsForValue().get(“foo”)进行测试 抛出异常 使用spring data redis 1.7.0时如何配置redis群集。M1?

  • 问题内容: 使用Lettuce,我们如何配置运行在主机x上的6379端口上的Spring Data Redis和运行在相同或不同主机上的6380端口上的slave? 问题答案: 该功能将包含在即将发布的Spring Data Redis 2.1版本中。您将配置类似于: Lettuce从静态(不由Redis Sentinel管理)设置中自动发现主服务器和从服务器。

  • 问题内容: 我有一个小的Spring Boot Web应用程序,可将数据保存到Redis。 运行docker-compose.yml容器后,但我已启动“连接已重置”。 spring引导aplication.yml docker-compose.yml 如何链接Spring Boot和Redis? 我错过了什么? 问题答案: 是错误的地址。使用的主机名。

  • 我正在使用的内容: spring-data-redis.1.7.0.release lettuce.3.5.0.final 我对与Redis相关的Spring bean进行了如下配置: redisTemplate Bean是自动连线的,用于Redis操作。 当我通过Redis-CLI使用'info'命令进行检查时,连接看起来正确建立。客户端计数与设置为lettucePool Bean+1的值完全相

  • 我使用的是spring数据Cassandra项目V1.3.0无法为我的Cassandra集群(V2.0.17)配置SSL。Sprint Data Cassandra文档表示,它支持使用DataStax Java驱动程序(2.0.x)的Cassandra 2.x,因此应该不会有问题。下面是初始化cassandra集群bean的Java cassandra配置: 我已经验证了用于设置SSL上下文的环境

  • 问题内容: Spring Data ES 3.2.0.M1仍然使用old 而不是 Spring Data ES 3.2.0.M1支持High Level Rest Client,请参阅 添加对Java High Level REST Client的支持 。我已经将Spring Data ES 3.2.0.M1添加到SB2应用程序中: 但是,仍然被使用。有两种指示:启动例外: 和调用时的异常stac