Redis集群

本文介绍了Redis集群的搭建过程。首先给出了主从节点的地址,接着说明了创建配置文件、启动服务及查看服务状态的操作。然后介绍了两种配置集群的方式,包括手动配置,如握手、分配插槽、指定主从复制关系等,以及使用redis - trib.rb搭建集群的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主1:127.0.0.1:6379
主2:127.0.0.1:6380
主3:127.0.0.1:6381
从1:127.0.0.1:6382
从2:127.0.0.1:6383
从3:127.0.0.1:6384


1、创建配置文件
mkdir redis/6379
mkdir redis/6380
mkdir redis/6381
mkdir redis/6382
mkdir redis/6383
mkdir redis/6384

将原始配置文件复制到相应的文件下(6个),并修改以下参数
6379配置文件(redis6379.conf):
port 6379
daemonize yes
pidfile /var/run/redis_6379.pid

cluster-enabled yes
cluster-config-file nodes_6379.conf
cluster-node-time 15000
appendonly yes

6380配置文件(redis6380.conf):
port 6380
daemonize yes
pidfile /var/run/redis_6380.pid

cluster-enabled yes
cluster-config-file nodes_6380.conf
cluster-node-time 15000
appendonly yes

6381配置文件......

2、启动redis-server服务
redis-server /home/zws/redis/6379/redis6379.conf
redis-server /home/zws/redis/6380/redis6380.conf
redis-server /home/zws/redis/6381/redis6381.conf
redis-server /home/zws/redis/6382/redis6382.conf
redis-server /home/zws/redis/6383/redis6383.conf
redis-server /home/zws/redis/6384/redis6384.conf

3、查看服务是否启动
ps -aux | grep redis

4、从这里有两种方式配置集群。

/*****************************/
方式一:手动配置

连接服务器
 redis-cli -p 6379

握手
cluster meet 127.0.0.1 6380
cluster meet 127.0.0.1 6381
cluster meet 127.0.0.1 6382
cluster meet 127.0.0.1 6383
cluster meet 127.0.0.1 6384

查看集群状态
cluster nodes
cluster info

分配插槽
redis-cli -h 127.0.0.1 -p 6379 cluster addslots {0..5461}
redis-cli -h 127.0.0.1 -p 6380 cluster addslots {5462..10922}
redis-cli -h 127.0.0.1 -p 6381 cluster addslots {10923..16383}

cluster nodes
由以上输出可知,有三个节点未使用
指定主从复制关系
redis-cli -h 127.0.0.1 -p 6382 cluster replicate 73f83177eada8d829d36bc37f69795c3a3a15a73
redis-cli -h 127.0.0.1 -p 6383 cluster replicate 4d0594b71abbcc75041087eb6968167ca6f5224c
redis-cli -h 127.0.0.1 -p 6384 cluster replicate 029ef6c8a2db700886bccebaa98b0ca772db4a9b

测试(不带参数 -c 数据非本插槽的会报错,带参数-c的会自动重定向):
redis-cli -p 6379 -c
set k1 v1
set k2 v2
set k3 v3
get k1 v1
get k2 v2
get k3 v3
/*****************************/

方法二:用redis-trib.rb搭建集群

Redis 5直接执行以下命令
redis-cli --cluster create 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 --cluster-replicas 1

Redis版本3或4使用redis-trib.rb(未测试)
redis-trib.rb create -replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384
 

### Redis 集群的搭建与配置 #### 一、Redis 集群简介 Redis 是一种高性能的键值存储系统,支持多种数据结构操作。通过集群模式可以实现分布式存储和高可用性。Redis 集群允许多个 Redis 实例协同工作,提供更高的吞吐量和更强的数据持久化能力。 --- #### 二、环境准备 在开始之前,需确认以下条件已满足: - 所有服务器的操作系统版本一致(如 CentOS 7 或 Windows),并安装了相同版本的 Redis 软件。 - 已关闭防火墙或开放必要的端口(默认 Redis 使用 6379 及其衍生端口)。 - 每台服务器上至少有两个 Redis 实例运行,分别作为主节点和从节点[^1]。 --- #### 三、具体步骤 ##### 1. 下载并解压 Redis 文件 下载指定版本的 Redis 压缩包(如 Redis 6.2.5 或更高版本),将其解压到目标路径下。例如,在 Linux 中执行以下命令: ```bash wget http://download.redis.io/releases/redis-6.2.5.tar.gz tar -zxvf redis-6.2.5.tar.gz cd redis-6.2.5 make ``` ##### 2. 创建多个实例目录 为每个 Redis 实例创建独立的工作目录,并复制 `redis.conf` 至对应文件夹中。例如: ```bash mkdir -p /service/redis/{6379,6380} cp redis.conf /service/redis/6379/ cp redis.conf /service/redis/6380/ ``` ##### 3. 修改配置文件 编辑每个实例下的 `redis.conf` 文件,设置不同的监听端口号和其他必要参数。以下是关键配置项: - 设置绑定 IP 地址:`bind 0.0.0.0` - 关闭保护模式:`protected-mode no` - 开启集群功能:`cluster-enabled yes` - 指定集群配置文件位置:`cluster-config-file nodes-{port}.conf` - 设定日志级别:`loglevel notice` ##### 4. 启动 Redis 实例 依次启动各个 Redis 实例。例如: ```bash redis-server /service/redis/6379/redis.conf redis-server /service/redis/6380/redis.conf ``` 如果是在多台物理机上部署,则需要远程登录每台机器重复上述过程[^2]。 ##### 5. 构建集群拓扑 利用 `redis-cli` 的集群管理工具完成初始化操作。假设当前存在六个节点分布在三台主机上,则可输入如下指令构建集群关系: ```bash redis-cli --cluster create \ 192.168.x.y:6379 192.168.x.z:6379 ... \ --replicas 1 ``` 其中 `--replicas` 参数表示每个主节点分配几个副本[^4]。 ##### 6. 验证集群状态 最后可以通过以下方式验证集群是否正常运作: ```bash redis-cli -c -h {任意IP} -p {任一口号} CLUSTER INFO CLUSTER NODES PING SET key value GET key ``` --- #### 四、注意事项 - 如果使用 Docker 容器来部署 Redis 集群,请确保容器间网络互通良好。 - 对于 Windows 平台上的开发测试场景,可通过批处理脚本来简化服务启动流程[^3]。 --- #### 五、示例代码片段 下面展示了一个简单的 Python 程序用于连接至 Redis 集群并向其中写入一条记录: ```python import redis r = redis.StrictRedisCluster(startup_nodes=[{"host": "127.0.0.1", "port": "6379"}], decode_responses=True) r.set('foo', 'bar') print(r.get('foo')) ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值