注:
Ø 在配置时,本文档以【用户:redis/redis】、【目录:/redis】为例进行说明
Ø 文档中执行命令为蓝色字体;配置文件为粉色字体;重点标记为红色字体
1. 集群
1.1. 准备
此节需要使用root权限用户安装,每台机器只需要执行一次
1.1.1. 安装依赖包
如果不想一个个去确认依赖包,可以参考《redis部署(3台集群)-自动安装.docx》的【1.2.2.安装依赖包】章节
1.1.1.1. 安装ruby
Ø yum安装方式
yum -y install ruby
yum -y install ruby-devel.x86_64
Ø rpm安装方式
sudo rpm -ivh --forcecompat-readline5-5.2-17.1.el6.x86_64.rpm
sudo rpm -ivh --force ruby-libs-1.8.7.374-4.el6_6.x86_64.rpm
sudo rpm -ivh --force ruby-1.8.7.374-4.el6_6.x86_64.rpm
sudo rpm -ivh --force ruby-devel-1.8.7.374-4.el6_6.x86_64.rpm
1.1.1.2. 安装rubygem
Ø yum安装方式
yum -y install rubygems
Ø rpm安装方式
sudo rpm -ivh --force ruby-irb-1.8.7.374-4.el6_6.x86_64.rpm
sudo rpm -ivh --force ruby-rdoc-1.8.7.374-4.el6_6.x86_64.rpm
sudo rpm -ivh --force rubygems-1.3.7-5.el6.noarch.rpm
有些系统默认没有rubygems的包,可能需要手动安装,先安装好ruby-irb和ruby-rdoc,然后操作以下步骤
上传rubygems-2.4.8.zip至/redis目录
unzip rubygems-2.4.8.zip
cd rubygems-2.4.8
ruby setup.rb
1.1.1.3. 安装redis.gem
上传redis.gem至/redis目录
gem install -l redis-3.2.2.gem
1.2. 安装redis集群
从此节开始使用普通用户redis安装
1.2.1. redis安装
上传redis-3.0.5.tar.gz至/redis目录
tar -zxvf redis-3.0.5.tar.gz
cd redis-3.0.5
make
make install PREFIX=/redis/redis
1.2.2. 配置步骤
1.2.2.1. 创建节点目录
mkdir -p /redis/redis/cluster/7381/
mkdir -p /redis/redis/cluster/7382/
mkdir -p /redis/redis/cluster/7383/
mkdir -p /redis/redis/cluster/7384/
mkdir -p /redis/redis/cluster/7385/
mkdir -p /redis/redis/cluster/7386/
1.2.2.2. 复制配置文件
cp /redis/redis-3.0.5/redis.conf /redis/redis/cluster/
1.2.2.3. 修改配置文件
vi /redis/redis/cluster/redis.conf
修改
---------------------------------------------------------------------------------------------------------------------------------
port 7381
appendonly yes
#daemonize yes
---------------------------------------------------------------------------------------------------------------------------------
#daemonize yes下方新增
---------------------------------------------------------------------------------------------------------------------------------
cluster-enabled yes
cluster-config-file/redis/redis/cluster/7381/nodes.conf
cluster-node-timeout 5000
---------------------------------------------------------------------------------------------------------------------------------
1.2.2.4. 复制配置文件至各节点
#修改完redis.conf配置文件中的这些配置项之后把这个配置文件分别拷贝到7381/73812/7383/7384/7385/7386目录下面
cp /redis/redis/cluster/redis.conf/redis/redis/cluster/7381/
cp /redis/redis/cluster/redis.conf/redis/redis/cluster/7382/
cp /redis/redis/cluster/redis.conf /redis/redis/cluster/7383/
cp /redis/redis/cluster/redis.conf/redis/redis/cluster/7384/
cp /redis/redis/cluster/redis.conf/redis/redis/cluster/7385/
cp /redis/redis/cluster/redis.conf/redis/redis/cluster/7386/
1.2.2.5. 修改各节点配置文件端口
#拷贝完成之后要修改7381/73812/7383/7384/7385/7386目录下面redis.conf文件中的port参数和cluster-config-file参数,分别改为对应的文件夹的名称
sed -i "s/7381/7381/g"/redis/redis/cluster/7381/redis.conf
sed -i "s/7381/7382/g"/redis/redis/cluster/7382/redis.conf
sed -i "s/7381/7383/g"/redis/redis/cluster/7383/redis.conf
sed -i "s/7381/7384/g"/redis/redis/cluster/7384/redis.conf
sed -i "s/7381/7385/g"/redis/redis/cluster/7385/redis.conf
sed -i "s/7381/7386/g"/redis/redis/cluster/7386/redis.conf
1.2.2.6. 创建持久化目录
cd /redis/redis/cluster
mkdir data
cd /redis/redis/cluster/data
mkdir 7381 7382 7383 7384 7385 7386
1.2.2.7. 启动reids
#分别启动这6个redis实例
cd /redis/redis/bin/
nohup ./redis-server /redis/redis/cluster/7381/redis.conf&
nohup ./redis-server /redis/redis/cluster/7382/redis.conf&
nohup ./redis-server /redis/redis/cluster/7383/redis.conf&
nohup ./redis-server /redis/redis/cluster/7384/redis.conf&
nohup ./redis-server /redis/redis/cluster/7385/redis.conf&
nohup ./redis-server /redis/redis/cluster/7386/redis.conf&
1.2.2.8. 确认启动情况
#启动之后使用命令查看redis的启动情况,每个端口会有一个进程
ps -ef|grep redis
1.2.2.9. 创建集群
#创建集群,让上面的实例互相通讯(1表示为每个master分配一个salve)
cd /redis/redis-3.0.5/src/
./redis-trib.rb create --replicas 1 \
120.76.21.209:7381 \
120.76.21.209:7382 \
120.76.21.209:7383 \
120.76.21.209:7384 \
120.76.21.209:7385 \
120.76.21.209:7386
1.2.2.10. 确认节点信息
执行以下命令可以查看到节点信息,存在3主3从:
./redis-cli -h 120.76.21.209 -p 7381 cluster nodes
1.2.3. 测试
进入任意一台的/redis/redis/bin
cd /redis/redis/bin
./redis-cli -h 120.76.21.209 -p 7381 -c
---------------------------------------------------------------------------------------------------------------------------------
crm89:/redis/redis/bin $ ./redis-cli -h 120.76.21.209-p 7381 -c
120.76.21.209:7381> set key 1
-> Redirected to slot [12539] located at120.76.21.209:7381
OK
120.76.21.209:7381> get key
"1"
120.76.21.209:7381> exit
---------------------------------------------------------------------------------------------------------------------------------
1.2.4. 启动
cd /redis/redis/bin/
nohup ./redis-server /redis/redis/cluster/7381/redis.conf&
nohup ./redis-server /redis/redis/cluster/7382/redis.conf&
nohup ./redis-server /redis/redis/cluster/7383/redis.conf&
nohup ./redis-server /redis/redis/cluster/7384/redis.conf&
nohup ./redis-server /redis/redis/cluster/7385/redis.conf&
nohup ./redis-server /redis/redis/cluster/7386/redis.conf&
1.2.5. 停止
ps -ef|grep redis
kill 掉所有进程