Redis集群怎么在一台机器上搭建和管理,单机环境下的集群配置分享
- 问答
- 2026-01-08 14:40:06
- 4
(主要思路参考了Redis官方文档关于创建集群的指南,并结合了常见的单机多实例部署实践)
要在单台机器上搭建Redis集群,本质上是模拟多台服务器的环境,因为一个标准的Redis集群至少需要三个主节点,为了保证高可用,每个主节点最好还有一个从节点,所以最少需要六个Redis实例,在一台机器上,我们就通过启动六个不同的Redis进程,每个进程使用不同的端口号和配置文件来实现。
你需要准备好Redis,确保你的机器上已经安装了Redis服务器,你可以从官网下载源码编译安装,或者使用系统的包管理工具安装,比如在Ubuntu上可以用apt-get install redis-server,安装完成后,我们主要的工具就是Redis服务端程序(通常是redis-server)和Redis命令行客户端(redis-cli),还有一个专门用于创建集群的管理工具redis-cli --cluster create(旧版本可能是redis-trib.rb,需要Ruby环境)。
第一步,创建六个独立的目录,打开你的终端,找一个合适的地方,比如在/home目录下或者直接放在/opt下,创建六个文件夹,可以分别命名为7000, 7001, 7002, 7003, 7004, 7005,这些数字代表每个Redis实例将要运行的端口号,这样管理起来一目了然。

第二步,为每个端口创建对应的配置文件,你需要准备六个配置文件,可以先用redis-server默认的配置文件作为模板,然后针对每个实例进行修改,最关键的几个配置项是:
port:这个必须设置成各自文件夹对应的端口号,比如7000目录下的配置文件,port就写7000。
cluster-enabled:必须设置为yes,这是开启集群模式的关键。
cluster-config-file:指定每个实例自己生成的集群配置文件路径,比如nodes-7000.conf,这个文件不需要你手动创建,Redis启动后会自己生成和管理,它用来记录集群的状态。
pidfile:指定进程ID文件的路径,比如/var/run/redis_7000.pid,避免进程ID文件冲突。
logfile:指定日志文件路径,比如/path/to/your/log/redis_7000.log,方便查看每个实例的日志。
dbfilename:指定持久化数据文件的名字,比如dump_7000.rdb,确保每个实例的数据文件是独立的。
appendonly:如果开启AOF持久化,也要给appendfilename设置不同的名字,比如appendonly_7000.aof。
把这些配置项在六个配置文件里分别设置好,确保端口号和所有文件名都是唯一的。
第三步,启动这六个Redis实例,打开六个终端窗口,或者使用后台启动的方式,在每个终端里,切换到对应的目录,然后使用命令redis-server /path/to/redis_7000.conf来启动,如果一切正常,你应该能看到六个Redis服务器都成功启动,并提示“Ready to accept connections”,并且日志里会有集群相关的初始化信息,你也可以用ps aux | grep redis命令来检查是否有六个redis-server进程在运行。

第四步,也是最关键的一步,使用Redis自带的集群管理工具将这些独立的实例组建成一个集群,在Redis 5及以上版本,这个功能被集成到了redis-cli工具中,使用如下命令:
redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 --cluster-replicas 1
这个命令的意思是,告诉工具我要用这六个地址来创建集群,--cluster-replicas 1表示每个主节点带一个从节点,工具会自动帮你分配哪三个是主节点,哪三个是从节点,并且会把从节点和对应的主节点关联起来,执行这个命令后,工具会给出一个分配方案,你输入yes确认,它就会开始执行节点握手、分配槽位(slots)等操作,当看到[OK] All 16384 slots covered.这个提示时,就意味着集群已经成功搭建完毕,所有16384个哈希槽都分配到了三个主节点上。
你的单机Redis集群就运行起来了,你可以用redis-cli -c -p 7000命令连接上集群(-c参数代表以集群模式连接),然后尝试设置(set)和获取(get)一些键值对,客户端会自动根据key的哈希值重定向到正确的节点上。
关于管理,日常操作和单机Redis类似,只是连接时需要指定集群模式,查看集群状态可以用redis-cli -p 7000 cluster info和redis-cli -p 7000 cluster nodes命令,这两个命令能非常清晰地展示集群的健康状况、节点角色以及槽位分配信息,如果需要关闭集群,只能逐个实例地去关闭,比如用redis-cli -p 7000 shutdown命令,依次关闭六个实例。
需要注意的是,这种单机集群只是为了学习和测试方便,它完全不具备真正集群的高可用和容灾能力,因为一旦这台物理机宕机,整个集群就全部不可用了,但在学习集群特性、测试客户端代码或者开发阶段,这是一种非常高效和节约资源的方式。
本文由盈壮于2026-01-08发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:http://waw.haoid.cn/wenda/76866.html
