今天说说怎么在linux系统搭建redis集群,redis在3.0版本后支持集群,在所有的集群方式里,最为推荐的就是redis本身退出的redis-cluster方式,今天说说如何搭建.
我们计划集群中 Redis 节点的端口号为 7001-7006 ,端口号即集群下各实例文件夹。数据存放在 端口号/data 文件夹中,由于是自己搭建,服务器不够用,因此搭建在一台服务器上,以端口作区分.
在搭建之前首先下载安装一个纯净的redis
第一:创建文件夹
mkdir /usr/local/redis-cluster
cd redis-cluster/
mkdir -p 7001/data 7002/data 7003/data 7004/data 7005/data 7006/data
第二:复制脚本,
在 /usr/local/redis-cluster 下创建 bin 文件夹,用来存放集群运行脚本,并把安装好的 Redis 的 src 路径下的运行脚本拷贝过来。看命令:
cd /usr/local/redis-cluster
mkdir bin
cd /usr/local/redis-3.2.9/src
cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-cli redis-server redis-trib.rb /usr/local/redis-cluster/bin
第三步
我们现在从已安装好的 Redis 中复制一个新的实例到 9001 文件夹,并修改 redis.conf 配置
cp -r /usr/local/redis /usr/local/redis-cluster/7001
注意,修改 redis.conf 配置和单点唯一区别是下图部分,其余还是常规的这几项:
port 9001(每个节点的端口号)
daemonize yes
bind 192.168.119.131(绑定当前机器 IP:注意必须是内网IP不然报错)
dir /usr/local/redis-cluster/9001/data/(数据文件存放位置,这句配置加在 redis.conf的最后一行即可)
pidfile /var/run/redis_9001.pid(pid 9001和port要对应)
cluster-enabled yes(启动集群模式)
cluster-config-file nodes9001.conf(9001和port要对应)
cluster-node-timeout 15000
appendonly yes
第四步:再复制出五个新 Redis 实例
\cp -rf /usr/local/redis-cluster/7001/* /usr/local/redis-cluster/7002
\cp -rf /usr/local/redis-cluster/7001/* /usr/local/redis-cluster/7003
\cp -rf /usr/local/redis-cluster/7001/* /usr/local/redis-cluster/7004
\cp -rf /usr/local/redis-cluster/7001/* /usr/local/redis-cluster/7005
\cp -rf /usr/local/redis-cluster/7001/* /usr/local/redis-cluster/7006
\cp -rf 命令是不使用别名来复制,因为 cp 其实是别名 cp -i,操作时会有交互式确认,比较烦人。
第五步:修改 7002-7006 的 redis.conf 文件
vi /usr/local/redis-cluster/7002/redis/etc/redis.conf
vi /usr/local/redis-cluster/7003/redis/etc/redis.conf
vi /usr/local/redis-cluster/7004/redis/etc/redis.conf
vi /usr/local/redis-cluster/7005/redis/etc/redis.conf
vi /usr/local/redis-cluster/7006/redis/etc/redis.conf
%s/7001/7002
%s/7001/7003
%s/7001/7004
%s/7001/7005
%s/7001/7006
其实我们也就是替换了下面这四行:
port 7002
dir /usr/local/redis-cluster/7002/data/
cluster-config-file nodes-7002.conf
pidfile /var/run/redis_7002.pid
第六步:启动7001-7006六个节点(可以封装为bat/sh脚本)
/usr/local/redis/bin/redis-server /usr/local/redis-cluster/7001/redis/etc/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis-cluster/7002/redis/etc/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis-cluster/7003/redis/etc/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis-cluster/7004/redis/etc/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis-cluster/7005/redis/etc/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis-cluster/7006/redis/etc/redis.conf
第七步:安装集群所需软件
yum install ruby
yum install rubygems
gem install redis 使用本地上传方式,如不能下载,本地下载好,上传linux
第八步:创建集群
/usr/local/redis-cluster/bin/redis-trib.rb create --replicas 1 172.17.0.12:7001 172.17.0.12:7002 172.17.0.12:7003 172.17.0.12:7004 172.17.0.12:7005 172.17.0.12:7006
集群搭建如图
accept这里填yes,M代表是主节点,S代表从节点,一般是三主三从,验证方式连接至其中一个节点,进行操作
集群状态为成功,至此搭建完成