本地搭建redis集群

  1. 下载并解压

cd /usr/local/src
wget http://download.redis.io/releases/redis-3.2.4.tar.gz //只有3.0以上的版本才支持集群
tar -zxvf redis-3.2.4.tar.gz 
2. 编译安装

cd redis-3.2.4
make && make install
3. 将 redis-trib.rb 复制到 /usr/local/bin 目录下

cd src
cp redis-trib.rb /usr/local/bin/ 
4.创建redis 节点

在 /usr/local/ 目录下创建 redis-cluster 目录;
mkdir redis-cluster
在redis-cluster目录下创建名为7000、7001、7002、7003、7004、7005的目录,并将redis-3.2.4目录下 redis.conf 拷贝到这六个目录中
cp redis.conf ./usr/local/7000 ./usr/local/7001 ./usr/local/7002 ./usr/local/7003 ./usr/local/7004 ./usr/local/7005
编辑每个目录下的redis.conf
daemonize yes //redis后台运行
pidfile /var/run/redis_7000.pid //pidfile文件对应7000,7002,7003,7004,7005
port 7000 //端口7000,7002,7003,7004,7005
cluster-enabled yes //开启集群
cluster-config-file nodes_7000.conf //集群的配置 配置文件首次启动自动生成7000,7002,7003,7004,7005
cluster-node-timeout 5000 //节点超时时间
appendonly yes //aof日志开启 有需要就开启,它会每次写操作都记录一条日志

5.启动节点

redis-server redis_cluster/7000/redis.conf
redis-server redis_cluster/7001/redis.conf
redis-server redis_cluster/7002/redis.conf
redis-server redis_cluster/7003/redis.conf
redis-server redis_cluster/7004/redis.conf
redis-server redis_cluster/7005/redis.conf

6.检查 redis 启动情况

ps -ef | grep redis

root 2895 1 0 11:03 ? 00:00:13 redis-server *:7004 [cluster]
root 2910 1 0 11:07 ? 00:00:10 redis-server *:7001 [cluster]
root 3006 5023 0 14:01 pts/4 00:00:00 grep redis
root 11447 1 0 00:13 ? 00:01:06 redis-server *:7005 [cluster]
root 11470 1 0 00:17 ? 00:01:05 redis-server *:7003 [cluster]
root 11477 1 0 00:17 ? 00:01:07 redis-server *:7002 [cluster]
root 11493 1 0 00:19 ? 00:01:07 redis-server *:7000 [cluster]

7.安装ruby
//不能yum安装 ,版本太低,要求至少2.2.2
wget https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.2.tar.gz
tar -xvzf ruby-2.4.2.tgz
cd ruby-2.4.2
./configure
make && make install

yum -y install ruby-devel rubygems rpm-build

gem install redis

8.创建集群
Redis 官方提供了 redis-trib.rb 这个工具,就在解压目录的 src 目录中,将它复制到 /usr/local/bin 目录中,可以直接在命令行中使用了。使用下面这个命令即可完成安装。
redis-trib.rb create –replicas 1 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

9.验证效果
redis-cli -c -p 7000 // -c 是通过集群方式
set name 122
-> Redirected to slot [5798] located at 127.0.0.1:7004
OK

10.模拟其中一台宕机
杀死7001进程

root 2910 1 0 11:07 ? 00:00:11 redis-server *:7001 [cluster]
kill 2910

执行存储,转到slave 7004
set name 122
-> Redirected to slot [5798] located at 127.0.0.1:7004
OK

11.将7001 重启加入集群
redis-server /usr/local/redis-cluster/7001/redis.conf //启动7001
redis-trib.rb fix 127.0.0.1:7001 //修复7001对应的槽位
redis-trib.rb check 127.0.0.1:7001 //添加到集群中

Performing Cluster Check (using node 127.0.0.1:7001)
M: 21a659d47405118f15009e982cdb800501f25da4 127.0.0.1:7001
slots:0-16383 (16384 slots) master
0 additional replica(s)
[OK] All nodes agree about slots configuration.
Check for open slots…
Check slots coverage…
[OK] All 16384 slots covered.

<think>好的,我现在需要帮助用户在本地环境中搭建配置Redis集群。首先,我需要回忆一下之前学过的关于Redis集群的知识,并结合用户提供的引用内容来组织答案。 用户提到有多个引用,其中引用[2]、[3]、[4]、[5]都涉及在Windows本地搭建Redis集群的步骤和可能遇到的问题。比如,引用[3]提到了安装Ruby和Ruby驱动,以及修改配置文件中的端口和集群配置文件名。引用[2]则指出设置密码后可能需要调整redis_trib.rb配置,增加密码设置,否则会报错。引用[4]和[5]给出了启动脚本和配置修改的示例。 首先,我需要确定用户的操作系统。虽然用户的问题没有明确说明,但引用的资料中提到了Windows系统,比如引用[2]和[4]都提到了Windows本地搭建。所以可能用户使用的是Windows环境,但也要考虑到其他系统的情况。不过,根据引用内容,可能主要针对Windows。不过,Redis官方推荐在Linux下使用集群,但用户可能需要在Windows本地测试,所以需要按照引用中的步骤来指导。 接下来,搭建Redis集群的基本步骤可能包括:安装Redis实例,配置多个节点,启动这些节点,然后使用工具创建集群。在Windows下可能需要使用Ruby环境来运行redis-trib.rb脚本,或者使用其他方法。不过,注意到Redis 5.0之后引入了redis-cli --cluster命令,可能不需要Ruby了,但用户提供的引用中可能还在使用旧的方法,比如引用[3]中提到了安装Ruby和驱动,这可能是在较旧版本中的步骤。需要确认这一点,但根据用户提供的引用,可能用户的环境需要Ruby支持。 现在,我需要整理步骤: 1. 准备多个Redis实例:每个节点需要不同的端口和配置文件。例如,创建多个文件夹,每个包含Redis的可执行文件和配置文件,配置文件中指定端口、集群启用、集群节点文件名等。引用[3]中提到复制服务并修改端口和cluster-config-file,引用[4]中的start.bat示例。 2. 修改每个节点的配置文件,确保cluster-enabled yes,设置端口,设置cluster-config-file为不同的节点文件,如nodes-6380.conf。引用[3]和[4]都有相关说明。 3. 启动所有Redis节点。可以通过批处理文件启动,如引用[4]中的start.bat,其中指定了端口。 4. 安装Ruby环境,因为旧版本的Redis集群工具需要Ruby来运行redis-trib.rb。引用[3]提到安装Ruby和Ruby驱动,解压rubygems,执行gem install redis,可能需要切换镜像源。如果用户使用的是Redis 5.0及以上,可能不需要,但根据引用内容,用户可能使用的是旧版,所以需要包括这一步。 5. 创建集群:使用redis-trib.rb或redis-cli --cluster create命令。例如,引用[3]提到在Redis根目录执行相关命令,可能需要指定节点地址和端口。 6. 测试集群状态,检查节点是否正常,数据分片是否正确。引用[5]中提到了查看集群状态和测试用例。 7. 处理可能的问题,比如设置密码时的报错,如引用[2]所述,需要修改redis_trib.rb文件,添加密码参数。 此外,需要注意的坑包括:防火墙设置、端口是否开放、密码配置是否正确、Ruby版本兼容性等。 在编写步骤时,要分点清晰,并参考用户提供的引用内容,适当标注引用标记。比如在修改配置文件的步骤中提到引用[3]和[4],在解决密码问题时提到引用[2]。 另外,用户可能遇到的问题包括节点无法连接、创建集群时报错,需要检查配置文件和网络设置。同时,如果设置了密码,需要确保所有节点使用相同的密码,并在创建集群时提供密码参数,如引用[2]所述需要修改redis_trib.rb的配置,或者在命令行中添加相关参数。 最后,生成相关问题需要考虑用户可能进一步的问题,比如性能优化、扩容、故障处理等,或者在不同系统下的搭建差异,比如Linux和Windows的区别,密码设置的影响等。</think>### 本地环境搭建配置 Redis 集群的步骤 #### 1. 准备工作 - **下载Redis**:获取Windows版Redis(建议使用3.2版本,兼容性较好)[^3]。 - **创建多个实例**:在本地创建多个文件夹(如`6380`、`6381`等),每个文件夹包含Redis服务文件(`redis-server.exe`、`redis.windows.conf`)[^4]。 #### 2. 配置节点文件 修改每个实例的`redis.windows.conf`: ```conf port 6380 # 不同实例端口需不同 cluster-enabled yes cluster-config-file nodes-6380.conf # 不同实例文件名需不同 cluster-node-timeout 5000 appendonly yes ``` 若需密码验证,添加: ```conf requirepass your_password masterauth your_password ``` 引用[2]提到:**若设置了密码,需修改`redis-trib.rb`以支持认证**。 #### 3. 启动Redis服务 为每个实例编写启动脚本(`start.bat`): ```bat title redis-6380 redis-server.exe redis.windows.conf ``` 双击运行所有`start.bat`,确保服务正常启动[^4]。 #### 4. 安装Ruby环境 - 下载并安装Ruby 2.6+(如`rubyinstaller-2.6.3-1-x64.exe`)[^3]。 - 安装Redis驱动: ```bash gem install redis --source https://gems.ruby-china.com/ # 使用国内镜像加速 ``` #### 5. 创建Redis集群 进入Redis安装目录,使用`redis-trib.rb`工具创建集群: ```bash redis-trib.rb create --replicas 1 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 ... ``` - `--replicas 1`表示每个主节点有1个从节点。 - 若配置了密码,需在`redis-trib.rb`中添加`:password => "your_password"`参数[^2]。 #### 6. 验证集群状态 使用Redis客户端检查集群状态: ```bash redis-cli -c -p 6380 CLUSTER INFO # 查看集群健康状态 CLUSTER NODES # 查看节点分布 ``` #### 7. 常见问题处理 - **节点连接失败**:检查防火墙是否开放端口,或配置文件中的`bind`设置。 - **密码认证错误**:确保所有节点使用相同密码,并修改`redis-trib.rb`的认证参数[^2]。 - **Ruby版本兼容性**:若安装失败,尝试切换Ruby版本或镜像源。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值