小编sin*_*gel的帖子

(生菜)READONLY 您不能针对只读从站进行写入

我需要一些帮助,我们的服务使用lettuce 5.1.6版本,总共部署了22个docker节点。
每当部署服务时,多个 docker 节点都会出现 ERROR: READONLY You can't write against a read only Slave。
重启有问题的docker节点不再出现ERROR

  • redis服务器配置:

8 主站 8 从站
停止写入 bgsave-错误 否
从站服务陈旧数据 是
从站只读
是 启用
集群 是 集群配置文件“/data/server/redis-cluster/{port} /conf/node.conf"

  • 生菜配置:
ClientResources res = DefaultClientResources.builder()
        .commandLatencyPublisherOptions(
                DefaultEventPublisherOptions.builder()
                        .eventEmitInterval(Duration.ofSeconds(5))
                        .build()
        )
        .build();
redisClusterClient = RedisClusterClient.create(res, REDIS_CLUSTER_URI);
redisClusterClient.setOptions(
        ClusterClientOptions.builder()
                .maxRedirects(99)
                .socketOptions(SocketOptions.builder().keepAlive(true).build())
                .topologyRefreshOptions(
                        ClusterTopologyRefreshOptions.builder()
                                .enableAllAdaptiveRefreshTriggers()
                                .build())
                .build());
RedisAdvancedClusterCommands<String, String> command = redisClusterClient.connect().sync();
command.setex("some key", 18000, "some value");
Run Code Online (Sandbox Code Playgroud)
  • 出现的异常:
io.lettuce.core.RedisCommandExecutionException: READONLY You can't write against a read only slave.
    at io.lettuce.core.ExceptionFactory.createExecutionException(ExceptionFactory.java:135) …
Run Code Online (Sandbox Code Playgroud)

java redis lettuce

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×1

lettuce ×1

redis ×1