Redis集群搭建部署

先说明下我们本次安装的环境配置以及最终的目标:
环境:3台CentOS-7.4.1708(阿里云主机)
目标搭建Redis集群,其中3台主机上每个上面放两个redis节点如下:
A主机:master节点,slave节点
B主机:master节点,slave节点
C主机:master节点,slave节点
一、Redis安装
1、下载以及解压

cd /usr/local/
wget http://download.redis.io/releases/redis-3.2.1.tar.gz
tar -zxvf ./redis-3.2.1.tar.gz

2、编译安装

 cd redis-3.2.1
 make && make install

注意:如果报错gcc命令未找到,请如下执行gcc命令的安装

yum install gcc

如果报错zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录,先进行如下操作

make MALLOC=libc

3、创建redis节点
在每台服务器上创建两个节点,如下:

 cd /usr/local/
 mkdir redis_cluster  //创建集群目录
 mkdir 7000 7001   //分别代表两个节点    其对应端口 7000 7001 
//copy一份配置文件到7000
cp /usr/local/redis-3.2.1/redis.conf  ./redis_cluster/7000/   
//拷贝到7001目录
cp /usr/local/redis-3.2.1/redis.conf  ./redis_cluster/7001/   

4、修改每个节点下redis.conf配置文件

daemonize    yes                          //redis后台运行
pidfile  /var/run/redis_7000.pid          //pidfile文件对应7000,7002,7003
port  7000                                //端口7000,7002,7003
cluster-enabled  yes                      //开启集群  把注释#去掉
cluster-config-file  nodes_7000.conf      //集群的配置  配置文件首次启动自动生成 
cluster-node-timeout  5000                //请求超时  设置5秒够了
appendonly  yes                           //aof日志开启  有需要就开启,它会每次写操作都记录一条日志

(坑点一)
标准的配置修改就是如上了,但是发现配置文件中bind的ip只有本地127.0.0.1并且开启了安全模式,这样就意味着,除本地之外的应用无法连接redis,那么我们将bind 127.0.0.1注释并且 protected-mode no,(这里据说可以绑定希望访问的IP而不用注释掉,注释掉的话是所有的IP都可以访问,但是我在绑定固定ip的时候无法启动了,所以就注释掉了,大家可以研究下这里或者后面我也会继续探索)如下:

#bind 127.0.0.1
protected-mode no

4、启动redis应用
进入各主机下启动redis节点

cd /usr/local
redis-server  redis_cluster/7000/redis.conf
redis-server  redis_cluster/7001/redis.conf

5、查看服务是否启动成功

 ps -ax | grep redis   #查看是否启动成功
 netstat -tnlp | grep redis #可以看到redis监听端口

二、创建集群

集群是用一个ruby写的东东搞的,笔者也没有研究,3个主机先安装下吧。

yum -y install ruby ruby-devel rubygems rpm-build 

然后 再用 gem 这个命令来安装 redis接口 gem是ruby的一个工具包

gem install redis

(坑点二)
利用ruby --version的命令查询下ruby的版本,如果ruby的版本比较低的话这里可能会失败,失败了的话,我们就不能用yum去安装了,用下面的方法:
1、先安装curl

sudo yum install curl

2、安装RVM

    gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
    curl -L get.rvm.io | bash -s stable

3、

 source /usr/local/rvm/scripts/rvm

4、查看rvm库中已知的ruby版本

 rvm list known
  1. 安装一个ruby版本

    rvm install 2.3.3
    
  2. 使用一个ruby版本

    rvm use 2.3.3
    
  3. 卸载一个已知版本

    rvm remove 2.0.0
    
  4. 查看当前所用版本

    ruby --version
    

上面的步骤在3台主机上完成之后,接下来运行一下redis-trib.rb命令


redis-trib.rb命令.png

可以看出这个就是我们建立集群的一个命令集
接下来我们要确保6个节点都是启动的,而且彼此之间网络都是通的
(坑点三)
我们要将每个主机的7000,7001端口对外开放之后,还要将7000+10000=17000以及17001的集群总线端口打开(阿里云主机配置入站规则),否则下面cluster meet操作会失败。
以上确认完毕之后,执行下面命令建立redis之间的连接:

  /usr/local/redis-3.2.1/src/redis-trib.rb  create  --replicas  1  A主机IP:7000 A主机IP:7001  B主机IP:7000 B主机IP:7001  C主机IP:7000  C主机IP:7001

然后会提示Can I set the above configuration? (type 'yes' to accept)这种提示,上面也会列出主从的以及插槽的分配策略,确认之后,输入“yes”,注意一定得是yes,不能是y,T___T....
输入完成之后,会提示Waiting for the cluster to join.......... ,这样就是在等各个cluster回应了。然后用另外两个主机的每个redis节点登录redis-cli进行回应,如下

 redis-cli -c -p 7000(7001)
 cluster meet A主机IP 7000    

都meet完成之后,如果A主机Waiting for the cluster to join..........消失了,证明已经完成搭建。
然后查一下/usr/local/redis/src/redis-trib.rb check A主机IP:7000可以看到配置情况

三、验证
在A主机上用vue-cli 7000登录执行以下命令:


设值.png

然后到A主机7001节点查询


image.png

然后到各个节点查询也如此,恭喜大功告成啦~~

附录:
你没有看错,这里还有一个坑,笔者在Waiting for the cluster to join..........还没响应完的时候网断了,下一次继续执行创建集群命令的时候又报错了T___T,然后就是提示“ERR Slot * is already busy”这种类似的错,这种错是因为我们之前配置了一半导致的,解决的办法就是把主机上我们之前的nodes_700*.conf文件先都删除了,然后用redis-cli登录到每个节点上执行

 flushall
 cluster reset

然后将6个节点都重新启动,最后再执行创建集群的命令。

到这里就结束了,第一次搭建redis集群,有问题的地方还请大家留言。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,816评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,729评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,300评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,780评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,890评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,084评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,151评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,912评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,355评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,666评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,809评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,504评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,150评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,121评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,628评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,724评论 2 351

推荐阅读更多精彩内容