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

如何配置redis集群时使用sping-data-redis 1.7.0.M1

谭晓博
2023-03-14

我使用spring data redis 1.7.0版。M1和绝地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时如何配置redis群集。M1?

共有1个答案

凌华奥
2023-03-14

基本上只需在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 Boot将提供配置属性(Spring.redis.cluster.nodesSpring.redis.cluster.max重定向),以便在下一版本中使用redis cluster。有关详细信息,请参阅提交/166a27。

Spring数据示例存储库已经包含Spring数据Redis集群支持的示例。

 类似资料:
  • 问题内容: 我使用spring-data-redis版本1.7.0.M1和jedis版本2.8.0 并使用【redisTemplate.opsForValue()。get(“ foo”)】进行测试 抛出异常 使用spring-data-redis 1.7.0.M1时如何配置redis-cluster? 问题答案: 基本上,所需要做的只是在中设置群集节点的初始集合,并将其提供给或。 spring启动

  • 我有一个应用程序使用 Spring Boot 2.2.6.release(spring-boot-starter-data-redis) Jedis 3.1.0. 我的用例:我有一个繁忙的流量处理应用程序,我写数据到Redis,并期望通过索引字段读取实体列表。这些数据只在一段时间内相关,因此我正在利用Redis的过期功能。 一切似乎都在工作,直到我注意到Redis中的数据并没有像预期的那样过期。当

  • 我试图在我的项目中使用spring data redis。当我在yaml文件中配置redis节点时,比如: 然后,spring-data-redis在内部为集群创建JedisConnectionFactory。但是如果我尝试通过以下方式配置: 然后,我必须在我的应用程序中为集群创建JedisConnectionFactory的bean。 我猜当前版本的spring-data-redis不支持在ya

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

  • 我在Mongodb中有一个如下所示的文档: 现在,我想转到一个基于特定“”的文档,对于该文档,我想转到“时间表”列表,其中对于几个特定日期(不仅是一个日期,而且是多个日期),我想将状态更新为“已预订”。我浏览了这个链接,如何使用过滤的位置运算符和ArrayFilter应用更新,但是在MongoTemplate类中,方法不接受参数。有人能帮忙吗 我出去。真的会感谢任何建议。谢谢。 注意:我使用的是s

  • 在linux配置文件中访问redis集群URL通常使用的表示法是什么?一个常规的这样的URL类似于