- 1、规划
- 2 redis安装
- 2.1 redis下载
- 2.2 解压
- 2.3 本地yum准备
- 2.4 安装 gcc tcl
- 2.5 编译
- 2.6 安装
- 2.7 配置文件
- 3 启动redis服务器
- 4 gem 安装
- 4.1 redis-trib.rb准备
- 4.2 安装ruby以及rubygems
- 4.3 redis.gem
- 5 启动集群
- 6 连接集群测试
- 7 集群启动停止脚本
- 7.1 启动脚本
- 7.2 停止脚本
- 7.3 授权
- 7.4 停止集群
在上一篇博客
redis简单主从复制的实现简述了
redis主从复制的搭建,其中也知道主从复制存在如下问题:Slave下线,只是读请求的处理性能下降
Master下线,写请求无法执行。本文讲述redis3.0在单机上搭建集群。
1、规划
端口 | 7001 | 7002 | 7003 | 7004 | 7005 | 7006 |
主从 | Master | Master | Master | Slave | Slave | Slave |
2 redis安装
2.1 redis下载
集群搭建需要下载至少redis3.0或者以上版本,历史版本下载地址。
除了下载redis还需下载redis3.0gem包
2.2 解压
tar -zxvf redis-3.0.0.tar.gz -C /opt/app/
2.3 本地yum准备
先挂载镜像,由于centos6.5的光盘可能缺失rubygems包,需要下载centos6.8光盘,centos光盘镜像文件下载地址:https://vault.centos.org/
mount /dev/cdrom /mnt
cd /etc/yum.repos.d/
cp old/CentOS-Base.repo local.repo
vim local.repo
local.repo 中内容如下
[base]
name=CentOS-$releasever - Base
baseurl=file:///mnt
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
yum clean all
本地yum仓库下载
yum makecache
2.4 安装 gcc tcl
yum install gcc tcl -y
2.5 编译
在 redis 解压 目录/opt/app/redis-3.0.0
make
2.6 安装
make install PREFIX=/opt/app/redis3
2.7 配置文件
将配置文件拷贝到安装目录处
cp /opt/app/redis-3.0.0/redis.conf /opt/app/redis3/bin/
复制安装的目录6份
cp -r redis1/ redis2
cp -r redis1/ redis3
cp -r redis1/ redis4
cp -r redis1/ redis5
cp -r redis1/ redis6
编辑6份的配置信息:
cd redis1
vim redis.conf
内容如下
port 7001
daemonize yes
cluster-enabled yes 注释放开就行了
redis2,redis3……redis6 同上
3 启动redis服务器
cd /opt/app/redis3/redis
./redis-server redis.conf
cd ../redis2
./redis-server redis.conf
cd ../redis3
./redis-server redis.conf
cd ../redis4
./redis-server redis.conf
cd ../redis5
./redis-server redis.conf
cd ../redis6
./redis-server redis.conf
查看进程
ps aux|grep redis
4 gem 安装
4.1 redis-trib.rb准备
将redis-trib.rb拷贝到指定目录/opt/redis3/
cp /opt/app/redis-3.0.0/src/redis-trib.rb /opt/app/redis3
4.2 安装ruby以及rubygems
yum install ruby rubygems -y
4.3 redis.gem
cd /apps
gem install redis-3.0.0.gem
5 启动集群
cd /opt/app/redis3
./redis-trib.rb create --replicas 1 192.168.8.63:7001 192.168.8.63:7002 192.168.8.63:7003 192.168.8.63:7004 192.168.8.63:7005 192.168.8.63:7006
6 连接集群测试
c表示集群连接,否则单机连接
redis1/redis-cli -p 7001 -c
set key1 hello
由于 key1 对16384取模后落在槽位 9189上,9189分配给了7002,所以自动重定向到联接到了7002。
sadd fruits apple pear banana
由于 fruits 对16384取模后落在槽位 14943,14943分配给了7003,所以自动重定向到联接到了7003
set mykey1 k11
由于 mykey1 k11 对16384取模后落在槽位 1860,1860分配给了7001,所以自动重定向到联接到了7001
集群状态
cluster nodes
看到 7001为master,7004为7001的slave,7005为7002的slave,7006为7003的slave
7 集群启动停止脚本
7.1 启动脚本
在家目录下创建 start-redis.sh
内容如下
#!/bin/bash
MYHOME=/opt/app/redis3
for i in `seq 6`
do
cd $MYHOME/redis$i
./redis-server redis.conf
done
7.2 停止脚本
在家目录下创建 stop-res.sh
内容如下
#!/bin/bash
for i in `seq 6`
do
/opt/app/redis3/redis1/redis-cli -p 700$i shutdown
done
7.3 授权
chmod 777 start-res.sh
chmod 777 stop-res.sh
7.4 停止集群
./stop-redis.sh
ps aux|grep redis