一. 下载
redis官方网站经常无法访问;可以从redis中文官网下载,这里可以下载到最新的稳定版,下载地址如下
http://www.redis.cn/download.html
下载包名称:redis-4.0.11.tar.gz
二. 安装环境说明
本例使用三台机器安装,有三个分片主节点,三个分片备节点,每个分片主节点对应一个分片备节点,分片主节点对应的分片备节点不能在同一台机器上,以保证高可用,信息如下表所示:
主机名 | IP地址 | 分片主节点 | 分片备节点 | slot分布 |
redis01 | 192.168.0.77 | shard01:7001 | shard02:7002 | 0--5460 |
redis02 | 192.168.0.78 | shard02:7002 | shard03:7002 | 5461--10922 |
redis03 | 192.168.0.79 | shard03:7003 | shard01:7002 | 10923--16383 |
图例
三. 安装
下载之后,把压缩包拷贝到redis01服务器opt目录下,然后解压
#tar -zxvf redis-4.0.11.tar.gz
安装
#cd redis-4.0.11
#make
四. 创建配置文件
这里创建一个文件夹放置配置文件
#mkdir -p /opt/redis-4.0.11/cluster-conf/{7001,7002}
#mkdir -p /opt/redis-4.0.11/cluster-data
#touch /opt/redis-4.0.11/cluster-conf/7001/redis-7001.conf
#touch /opt/redis-4.0.11/cluster-conf/7002/redis-7002.conf
#mkdir /opt/redis-4.0.11/log
为配置文件redis-7001.conf添加内容
bind 192.168.0.77 #填写当前主机IP地址
port 7001 #端口号对应配置文件名
daemonize yes
pidfile /var/run/redis/redis-7001.pid #配置pid文件路径
logfile /opt/redis-4.0.11/log/redis-7001.log #配置日志文件路径
dir /opt/redis-4.0.11/cluster-data #数据文件目录
dbfilename dump7001.rdb #配置rdb文件名称
cluster-enabled yes #开启集群模式
cluster-config-file nodes-7001.conf #集群节点信息存储文件
appendonly yes #启用aof
cluster-node-timeout 15000 #请求超时设置
appendfilename "appendonly-7001.aof" #aof文件名称
为配置文件redis-7002.conf添加内容
bind 192.168.0.77 #填写当前主机IP地址,
port 7002 #端口号对应配置文件名
daemonize yes
pidfile /var/run/redis/redis-7002.pid #配置pid文件路径
logfile /opt/redis-4.0.11/log/redis-7002.log #配置日志文件路径
dir /opt/redis-4.0.11/cluster-data #数据文件目录
dbfilename dump7002.rdb #配置rdb文件名称
cluster-enabled yes #开启集群模式
cluster-config-file nodes-7002.conf #集群节点信息存储文件
appendonly yes #启用aof
cluster-node-timeout 15000 #请求超时设置
appendfilename "appendonly-7002.aof" #aof文件名称
五. 打包拷贝
将程序打包拷贝到另外两台机器,且解压到同样的目录下
#cd /opt
#tar -zcvf ./redis-4.0.11.tar.gz ./redis-4.0.11
#scp ./redis-4.0.11.tar.gz redis02:/opt
#scp ./redis-4.0.11.tar.gz redis03:/opt
登录redis02和redis03主机解压
#cd /opt
#tar -zxvf redis-4.0.11.tar.gz
六. 修改配置
主机redis02修改配置文件redis-7001.conf
bind 192.168.0.78
主机redis02修改配置文件redis-7002.conf
bind 192.168.0.78
主机redis03修改配置文件redis-7001.conf
bind 192.168.0.79
主机redis03修改配置文件redis-7002.conf
bind 192.168.0.79
七. 安装ruby
备注:如果无法安装相关组件,则可以跳过这段,使用手动创建集群,参考第八段
第一次配置集群需要使用redis-trib.rb工具,redis-trib.rb是使用ruby语言写的,所以需要安装ruby依赖
使用redis01机器做集群配置,ruby则安装到redis01机器上
#yum install ruby rubygems
#gem install redis
八. 启动redis
分别到三台机器上启动redis
#cd /opt/redis-4.0.11
#./src/redis-server ./cluster-conf/7001/redis-7001.conf
#./src/redis-server ./cluster-conf/7002/redis-7002.conf
九. 创建集群
在redis01机器上,执行命令redis-trib.rb创建集群
#redis-trib.rb create --replicas 1 192.168.0.77:7001 192.168.0.77:7002 192.168.0.78:7001 192.168.0.78:7002 192.168.0.79:7001 192.168.0.79:7002
以上命令,系统会随机分配主分片节点和备分片节点,这里不建议使用;建议使用以下办法
1. 创建三个主分片节点
#redis-trib.rb create 192.168.0.77:7001 192.168.0.78:7001 192.168.0.79:7001
备注:有时候,内网安装ruby等工具比较麻烦,也可以不使用redis-trib.rb工具,可以完全使用手动方式添加集群
#./src/redis-cli -h 192.168.0.77 -p 7001
192.168.0.77:7001> CLUSTER MEET 192.168.0.77 7001
192.168.0.77:7001> CLUSTER MEET 192.168.0.78 7001
192.168.0.77:7001> CLUSTER MEET 192.168.0.79 7001
分配槽位为主分片节点
./src/redis-cli -h 192.168.0.77 -p 7001 cluster addslots {0..5460}
./src/redis-cli -h 192.168.0.78 -p 7001 cluster addslots {5461..10922}
./src/redis-cli -h 192.168.0.79 -p 7001 cluster addslots {10923..16383}
2. 手动添加备分片节点
连接到redis服务器,添加节点到cluster
#./src/redis-cli -h 192.168.0.77 -p 7001
192.168.0.77:7001>cluster meet 192.168.0.77 7002
192.168.0.77:7001>cluster meet 192.168.0.78 7002
192.168.0.77:7001>cluster meet 192.168.0.79 7002
使用cluster nodes查询主节点对应ID(命令的输出这里没有放在文档里面)
#./src/redis-cli -h 192.168.0.77 -p 7001
192.168.0.77:7001> cluster nodes
主节点 | ID |
192.168.0.77 7001 | 1d90f04edb565027b567cf1d5f062007035c721b |
192.168.0.78 7001 | 8b41eb962aeee9593059f0b44b30c7bd094976fa |
192.168.0.79 7001 | 144d286835362f54b7ff82bd7246516818f90e28 |
将添加的三个节点变更为备分片节点,分别登录三个备份节点
#./src/redis-cli -h 192.168.0.77 -p 7002
192.168.0.77:7002>CLUSTER REPLICATE 144d286835362f54b7ff82bd7246516818f90e28
#./src/redis-cli -h 192.168.0.78 -p 7002
192.168.0.78:7002>CLUSTER REPLICATE 1d90f04edb565027b567cf1d5f062007035c721b
#./src/redis-cli -h 192.168.0.79 -p 7002
192.168.0.79:7002>CLUSTER REPLICATE 8b41eb962aeee9593059f0b44b30c7bd094976fa