ERR unknown command `redis-cli`, with args beginning with: `--cluster`, `create`, `--cluster-replicas`, `1`, `192.168.211.1:6379`, `192.168.211.1:6380`, `192.168.211.1:6381`, `192.168.211.`,
时间: 2025-03-22 22:06:51 浏览: 230
Redis 集群创建过程中遇到 `unknown command` 错误通常是因为 Redis 节点未启用集群模式或者客户端与服务器之间的协议版本不匹配。以下是关于此问题的分析以及解决方案:
### 可能原因
1. **Redis 版本过低**
如果使用的 Redis 版本低于 3.0,则可能无法支持集群功能,因为 Redis 集群是在 Redis 3.0 中引入的功能[^2]。
2. **未加载集群模块**
即使使用的是高版本 Redis,如果配置文件中禁用了集群命令(例如通过修改 `redis.conf` 文件中的设置),也可能导致此类错误。
3. **节点间通信异常**
当某些节点未能正确加入集群时,可能会引发未知命令的报错情况。这可能是由于网络分区或其他连接问题引起的。
4. **CLI 工具版本不符**
使用的 `redis-cli` 命令行工具版本与实际运行的服务端版本存在差异也会造成兼容性问题[^3]。
### 解决方案
#### 检查并升级 Redis 版本
确认当前安装的 Redis 是否满足最低要求(>=3.0),如果不是最新稳定版建议更新到更高版本以获得更好的性能表现及修复已知漏洞。
```bash
redis-server --version
```
#### 修改配置文件启⽤集群⽀持
编辑每个实例对应的 `redis.conf` ,确保以下选项被正确定义:
- 设置 `port` 参数指定监听端⼝;
- 将 `cluster-enabled yes` 添加至文件来开启集群特性;
- 定义 `cluster-config-file nodes-{port}.conf` 来保存节点状态信息;
- 设定合适的超时时间如 `cluster-node-timeout 5000`。
完成上述更改之后重启所有涉及的服务进程使其生效。
#### 执行正确的初始化脚本
利用官方推荐的方式重新构建整个分布式环境之前先清除旧数据以防干扰新部署流程:
```bash
rm -rf /path/to/data/directory/*
```
接着按照标准语法发起建立请求:
```bash
redis-cli --cluster create \
{node-ip}:700{0..5} \
--cluster-replicas 1
```
注意替换 `{node-ip}` 和端口号范围为你自己的实际情况,并且保证每台机器上的防火墙规则允许相互访问这些特定端口之间流量通行无阻。
---
### 提供一段验证代码片段用于测试连通性和基本操作成功与否
下面给出一个简单的 Python 程序用来展示如何向已经搭建好的 Redis Cluster 发送 SET/GET 请求:
```python
from redis import RedisCluster
startup_nodes = [
{"host": "your_node_ip", "port": "7000"},
]
try:
rc = RedisCluster(startup_nodes=startup_nodes, decode_responses=True)
key_name = 'test_key'
value_to_set = 'this is a test'
result_of_setting = rc.set(key_name, value_to_set)
retrieved_value = rc.get(key_name)
print(f"Set Operation Result: {result_of_setting}")
print(f"Retrieved Value For Key '{key_name}': {retrieved_value}")
except Exception as e:
print(e)
```
阅读全文
相关推荐



















