redis集群搭建部署

Redis集群搭建部署()

1.Redis版本 (需3.0及以上版本)
2.机器准备:内蒙古农业大学四台应用机(做redis集群必须准备至少6个节点)
机器1: 172.24.5.21:7000 172.24.5.21:7001
机器2: 172.24.5.22:7000 172.24.5.22:7001
机器3: 172.24.5.23:7000 172.24.5.23:7001
机器4: 172.24.5.24:7000 172.24.5.24:7001

搭建步骤:
1.在机器1的/opt目录下创建文件夹,用于存放节点文件:

sudo mkdir cluster-test

2.在cluster-test文件夹下创建以端口号命名的子文件夹:

mkdir 7000 7001

3.在7000文件中创建redis.conf文件:

vim redis.conf

4.将以下内容拷贝到redis.conf文件中:

#注意每个文件对应的port的不同
port 7000
cluster-enabled yes
cluster-config-file nodes.conf
#建议添加(不添加后面可能会报错) 注意每个节点绑定的ip不同
bind 172.24.5.21
cluster-node-timeout 5000
appendonly yes

5.将7000目录下的redis.conf文件拷贝到7001目录下,并修改里面的端口号为7001:

cp redis.conf /opt/cluster-test/7001/

6.将机器1上的cluster-test文件通过scp拷贝到机器2,机器3和机器4上,注意需要修改里面的bind绑定的ip!
在机器1上执行命令:

scp -r cluster-test root@172.24.5.22:/opt/
scp -r cluster-test root@172.24.5.23:/opt/
scp -r cluster-test root@172.24.5.24:/opt/

7.分别在机器1、机器2、机器3和机器4上下载并安装Redis,然后,编译,安装,详情可参考乌班图安装redis
8.在机器1、机器2、机器3和机器4上分别从redis安装目录下的src文件中将编译好的redis-server拷贝到cluster-test目录下:

cp redis/src/redis-server /opt/cluster-test/

9.在机器1、机器2、机器3和机器4上分别进入7000和7001目录,启动节点后台运行:

redis-server redis.conf &

成功大概会如下图所示:


image.png

10.在机器1(也可以选择其他机器,或者在每个服务器上都装一个,也方便以后的配置)上安装ruby环境(详情可参考ruby环境安装,已经安装ruby的这一步可以跳过),请确保 ruby版本是 1.8.7+版本, 否则,执行 redis-trib.rb命令时可能会提示无法连接redis服务(因为redis-trib.rb工具是ruby编写的所以需要ruby环境的支持):

#此方法(apt-get)适用于linux乌班图系统
sudo apt-get update
sudo apt-get install ruby

11.更换gem镜像(使用淘宝),在机器1(根据上一步而定)安装ruby环境的redis第三方接口:

#更换镜像
gem sources -r https://rubygems.org/ -a https://ruby.taobao.org 
#安装ruby环境的redis库
sudo gem install redis 

12.在机器1上的redis安装目录的src下输入如下命令创建集群:

./redis-trib.rb create --replicas 1 172.24.5.21:7000 172.24.5.22:7000 172.24.5.23:7000 172.24.5.24:7000 172.24.5.21:7001 172.24.5.22:7001 172.24.5.23:7001 172.24.5.24:7001

命令解释:
#redis-trib.rb工具的create子命令构建
#--replicas 则指定了为Redis Cluster中的每个Master节点配备几个Slave节点
#节点角色由顺序决定,先master之后是slave(为方便辨认,slave的端口比master大1000) 

中间会提示一次Can I set the above configuration? (type 'yes' to accept)
输入yes即可

中间可能会报错cann't connect node 172.24.5.21:7000 之类的,查了很多资料,大概都是说:
1.可能是ruby 和gem的版本太低,建议升级版本
2.可能是跟配置里面bind绑定的ip有关(后来我发现我的问题完全可以用该方法解决,我下面说的方法是完全没必要的,直接用这个就可以了,应该在每个节点文件注意是节点文件,不是装redis路径下的配置文件的配置文件redis.conf添加bind绑定自己主机的ip,当然也可以直接在添加配置文件的时候就写好,注意每个节点绑定的ip是不同的 至于下面说的修改模式也是一种方式,(是我认为修改了bind没用才使用的,现在都已经改回)可能不安全不建议使用也可以忽略仅供参考)

image.png

3.我试了上面两个都不行,然后用下面的方法解决了
好像是redis默认受保护的模式下是默认只能找127.0.0.1这类的环路地址.其他的地址是找不到的,
当去telnet这个地址时会提示给出了四种解决方法,如下图,


image.png

我是直接用的第一种方法,可能会不太安全,直接在每个节点的配置文件redis.conf中都添加了一行配置,关闭保护模式:

protected-mode no
image.png

然后再重新执行一下创建集群的命令即可,成功会显示如下界面

image.png

13.使用命令查看集群状态(#ip:port可以是集群的任意节点):

./redis-trib.rb check 172.24.5.21:7000
image.png

tips
Redis集群测试:
1.重新分片:

./redis-trib.rb reshard 172.24.5.21:7000

2.集群故障:

./redis-cli -p 7000 debug segfault

3.删除节点:

./redis-trib.rb del-node 172.24.5.22:7000 
#注意:删除主节点时,主节点必须没有哈希槽slots。

4.添加新节点:
a.添加从节点:
创建9007节点,启动9007实例(步骤如上已介绍)
并且把9007节点设为9004的从节点

#把实例添加到集群中
redis-trib.rb add-node --slave 127.0.0.1:9007 127.0.0.1:9004 

b.添加主节点:
创建9008节点,启动9008实例(步骤如上已介绍)

#把实例添加到集群中
redis-trib.rb add-node 127.0.0.1:9008 127.0.0.1:9001 #这个第二个IP port可以是集群里面任意主节点的IP和端口

重新分片,为新节点分配哈希槽(指从旧节点中迁移一部分slots到新节点中,让新节点真正成为集群中的一员):

redis-trib.rb reshard 127.0.0.1:9008 

5.其他命令:

./redis-trib.rb check 172.24.5.21:7000 #检查集群状态
./redis-cli -p 7000 cluster nodes | grep master #打印集群主节点信息
./redis-cli -p 7000 cluster nodes | grep slave #打印集群从节点信息

好久以前的笔记,如今翻看到怕丢失故又重新梳理移到了简书
第一篇简书,对于不擅长表达的我来说还挺费时的(捂脸)
希望以后可以继续坚持,努力提高表达能力(太阳)
[一名在路上快乐且热爱生活的程序媛 ]

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

推荐阅读更多精彩内容