You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenSuse下redis-plus-plus连接Redis单机及集群报错求助

问题背景

我在OpenSuse 15.0系统中安装Redis后,使用redis-cli测试与Redis服务端的通信状态正常。由于使用C++进行开发,我选择使用redis-plus-plus库,该库安装流程顺利且全部测试用例均通过。随后我在redis-plus-plus根目录下编写测试代码验证连接有效性。

初始单机连接测试

初始测试代码如下:

#include <sw/redis++/redis++.h>
#include <iostream>
#include <unordered_set>

using namespace sw::redis;

int main()
{
        // Create an Redis object, which is movable but NOT copyable.
        auto redis = Redis("tcp://127.0.0.1:6379");
        redis.set("key", "val");
}

使用如下命令编译:

/usr/bin/g++-10 -std=c++17 -o main main.cpp /home/user/redis-plus-plus/test/libredis++.a /home/user/hiredis/build/libhiredis_static.a -pthread

编译无报错,执行./main程序时出现如下错误:

terminate called after throwing an instance of 'sw::redis::Error'
  what():  unknown error code: Failed to connect to Redis: 
Abortado (`core' generado)

当时排查确认Redis服务端在另一终端正常运行,故障定位在redis.set("key", "val");这一行,移除该行代码后程序运行无异常。该单机连接问题后续已解决。

新增集群连接后报错

解决单机连接问题后,新增Redis集群连接代码遇到新报错,更新后的代码如下:

#include <sw/redis++/redis++.h>
#include <iostream>

using namespace sw::redis;

int main()
{
        auto redis = Redis("tcp://127.0.0.1:6379");
        redis.set("key", "new_val270622");
        
     
        auto redis_cluster = RedisCluster("tcp://127.0.0.1:16379"); 
        redis_cluster.set("key", "new_val");
}

运行程序时报错:

CLUSTERDOWN The cluster is down

已完成的排查操作

  • 执行ss -tulpn命令查询端口监听状态,结果如下:
    端口监听查询结果截图
  • 已在redis.config中修改如下配置:
cluster-enabled yes
cluster-config-file nodes-16379.conf
cluster-require-full-coverage yes
  • 已执行redis-cli --cluster fix 127.0.0.1:6379命令尝试修复集群,但问题仍未解决。

内容的提问来源于stack exchange,提问作者Georgia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 00:12:17