文章讲述的是一个伪分布式的redis集群,即在同一个虚拟机上启动多个redis实例来实现
- 将单机版的redis/bin目录复制一份到一个新创建的目录(任意路径)redis-cluster/redis01
- 修改redis01/redis.conf文件中的端口为7001,启动redis集群,修改pidfile文件名避免冲突,如下配置:
port 7001
cluster-enabled yes
pifile /var/run/redis_7001.pid
- 注意: 删除redis01目录下的dump.rdb文件(如果存在)
- 复制redis01目录5次,依次形成redis02、redis03、redis04、redis05、redis06。参照修改redis01配置文件方式修改其余5个配置文件
- 依次启动6个redis,或者也可以创建一个shell脚本统一启动,脚本如下:
cd redis01
./redis-server redis.conf
cd ..
cd redis02
./redis-server redis.conf
cd ..
cd redis03
./redis-server redis.conf
cd ..
cd redis04
./redis-server redis.conf
cd ..
cd redis05
./redis-server redis.conf
cd ..
cd redis06
./redis-server redis.conf
cd ..
- 执行该脚本,让6个redis实例以集群模式启动
- 安装 ruby 运行环境
yum install -y ruby
yum install -y rubygems
- 下载 redis 对应版本的
gem(redis-3.2.1.gem),我测试的时候使用redis-3.2.1.gem,没找到redis-3.2.11对应版本的,也可以运行 - 执行 gem 安装命令
gem install redis-3.2.1.gem
- 在redis源代码目录src(最初tar解压出来的目录)找到名为redis-trib.rb 的 ruby 脚本文件,执行最后创建语句:
./redis-trib.rb create --replicas 1 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 127.0.0.1:7006
- 注意: 这个地方使用127.0.0.1,开始我使用的192.168.32.130类似ip
创建失败,可能在3.2.11版本默认限制了这种用法,需要配置redis.conf里面的bind绑定ip参数吧