Redis集群安装
1 环境准备
1.1 系统环境
Centos6.5 2.6.32-431.el6.x86_64
1.2 依赖包
yum -y install wget tcpdump glibc libgcc gcc gcc-c++ ncurses-devel bison openssl openssl-devel xinetd glibc glibc-common gd gd-devel rsync puppet ntp perl cmake man tree lsof openssh-clients traceroute lsb glibc-2.12-1.132.el6.i686 libgcc-4.4.7-4.el6.i686 vim strace readline-devel tcl tcl-devel python-devel libnl-devel unzip lrzsz(安装系统时更新)
yum -y install ruby ruby-devel ruby-rdoc tcl tcl-devel
1.3 软件
- a. redis-3.0.3.tar.gz(公司使用3.0.3版本)
- b. rubygems-1.8.7.gz
- c. redis-3.2.1.gem
2 安装过程
2.1 将redis-3.0.3.tar.gz解压到/opt/目录下,并重命名为redis并编译
tar –zxvf redis-3.0.3.tar.gz
mv redis-3.0.3 /opt/redis
make
2.2 将rubygems-1.8.7.gz解压到/opt/redis/下
tar -zxvf rubygems-1.8.7.gz
mv rubygems-1.8.7 /opt/redis/
2.3 进入/opt/redis/rubygems-1.8.7/,运行命令ruby setup.rb命令
cd /opt/redis/rubygems.1.8.7/
ruby setup.rb
2.4 拷贝redis-3.2.1.gem到/opt/redis/下,运行gem install /opt/redis/redis-3.2.1.gem
cp redis-3.2.1.gem /opt/redis/
gem install redis-3.2.1.gem
3 集群搭建
3.1 在/opt/redis/下新建目录cluster
mkdir /opt/redis/cluster
3.2 在cluster下新建文件夹7000-7005
注:7000-7005是redis实际发布的端口号。若集群搭建在不同主机上,则分别在各主机建立各自端口号对应的文件夹即可。
cd /opt/redis/cluster
mkdir 7000 7001 7002 7003 7004 7005
3.3 修改配置文件/opt/redis/redis.conf,修改如下内容
daemonize no 为 yes
appendonly no 为yes
在appendonly yes后新增:
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
3.4 将redis.conf分别复制到7000-7005中
cp redis.conf /opt/redis/cluster/7000/
cp redis.conf /opt/redis/cluster/7001/
cp redis.conf /opt/redis/cluster/7002/
cp redis.conf /opt/redis/cluster/7003/
cp redis.conf /opt/redis/cluster/7004/
cp redis.conf /opt/redis/cluster/7005/
3.5 分别将各文件中redis.conf中的端口号替换为文件对应端口号,例如7000下的redis.conf
sed –i ‘s#6379#7000#g’ /opt/redis/cluster/7000/redis.conf
3.6 分别进入7000-7005,然后启动7000-7005实例
cd /opt/redis/cluster/7000/
./../../src/redis.server redis.conf &
cd /opt/redis/cluster/7001/
./../../src/redis.server redis.conf &
cd /opt/redis/cluster/7002/
./../../src/redis.server redis.conf &
cd /opt/redis/cluster/7003/
./../../src/redis.server redis.conf &
cd /opt/redis/cluster/7004/
./../../src/redis.server redis.conf &
cd /opt/redis/cluster/7005/
./../../src/redis.server redis.conf &
3.7 创建集群
进入/opt/redis/src/,执行如下命令:
./redis-trib.rb create --replicas 1 172.16.19.8:7000 172.16.19.9:7001 172.16.19.10:7002 172.16.19.11:7003 172.16.19.12:7004 172.16.19.13:7005
命令解释:
redis-trib.rb 是搭建集群的命令
--replicas 1 是指为每个MASTER分配一个SLAVE,集群需要六个节点(官方推荐配置)
--replicas 0是指只有三个MASTER,没有SLAVE,集群有三个节点(不采用)
172.16.19.8:7000是指对应redis服务器的IP地址以及redis服务配置的端口
此外,启动后redis会询问是否需要保存集群配置信息,敲yes,然后系统会自动选择谁做主机谁备份
4 查看集群状态
通过客户端,进去集群控制台。运行如下命令:
cd /opt/redis/src
./redis-cli –c –p 7000 ----其中-c是以集群方式进去–p是选择进入端口号
查看集群信息:cluster info
127.0.0.1:7001> cluster info
cluster_state:ok ------集群状态ok说明集群状态正常
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:24
cluster_my_epoch:24
cluster_stats_messages_sent:21294261
cluster_stats_messages_received:5858767
查看集群节点信息:cluster nodes