Redis集群搭建

安装Redis集群准备

采用原生搭建的方式搭建3主3从的Redis Cluster,分别给3个master节点配置一个slave节点,总计6个Redis节点。
但由于我们只有4台机器,所以选择在其中的两台机器上安装两个redis。

安装步骤参考之前写的文章

修改配置文件

port 6380 # server端口,4台server用默认的6379,所以无需修改,另外两台则改成6380。
# bind 127.0.0.1 //这一行要注释,否则无法远程连接
cluster-enabled yes
cluster-config-file nodes.conf //node.conf文件不用管。
cluster-node-timeout 5000
appendonly yes //aof
daemonize yes 
protected-mode no

启动服务

[root@localhost]# redis-server redis.conf

到这里我们就有以集群模式启动的6台redis server,但是每台服务器还没有进行slot指派,此时是不能对外提供服务的。

开放防火墙端口

[root@test-3]# firewall-cmd --zone=public --add-port={6379/tcp,16379/tcp} --permanent
[root@test-3]# firewall-cmd --reload

搭建集群(slot指派)

用redis官方提供的redis-cli 命令的--cluster选项。
下面的命令将六台服务器组成一个集群
其中复制因子为1所,以会有3台master,另外3台为slave。
16384个slot会尽可能均匀的指派给3台master, 而3台slave异步的从其master进行复制。
任选一台机执行以下命令

[root@test-3 redis-6.2.5]# src/redis-cli --cluster create 192.168.0.129:6379 192.168.0.250:6379 test-3:6379 test-3:6380 test-4:6379 test-4:6380 --cluster-replicas 1
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica test-3:6380 to 192.168.0.129:6379
Adding replica test-4:6380 to 192.168.0.250:6379
Adding replica test-4:6379 to sz-cms-3:6379
M: ae80cca550b15585b20b4ac7511f7751437f6ee 192.168.0.129:6379
   slots:[0-5460] (5461 slots) master
M: d7ca9360b74b777e7739e05d2265b6c4d5f5ca0 192.168.0.250:6379
   slots:[5461-10922] (5462 slots) master
M: 68569ee4c6bb4b60981ea34ee1b7c61b2ce285 test-3:6379
   slots:[10923-16383] (5461 slots) master
S: 3532972c73ce3b785d538983f725486e7a0fc9 test-3:6380
   replicates ae80cca550b558b20b4acc7511f7751437f6ee
S: b648cc92b55d07ec638c7d41a9ca24fc5d9160 test-4:6379
   replicates 68569ee4cbb4b609881e7a34ee1b7c61b2ce285
S: 25e9b9a3de4ac4c3e47eb3fdb9f8e80c98e728f test-4:6380
   replicates d7ca9360b74b777e773905d2265b6c4d5f5ca0
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join

>>> Performing Cluster Check (using node 192.168.0.129:6379)
M: ae80cca550b185b20b4acc7511f7751437f6ee 192.168.0.129:6379
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
M: d7ca9360b74b777e77397e05d25b6c4d5f5ca0 192.168.0.250:6379
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
S: 25e9b9a3de4c4c3e47b3fdb9f8e80c98e728f 192.168.0.141:6380
   slots: (0 slots) slave
   replicates d7ca9360b74b77e7739705d2265b6c4d5f5ca0
M: 68569ee4c6bb4609881e7a34ee1b7c1b2ce285 192.168.0.228:6379
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
S: b648cc92b55d17ec638c7d41ca9a24fc5d9160 192.168.0.141:6379
   slots: (0 slots) slave
   replicates 68569ee4c6bbb609881e7a4ee1b7c612ce285
S: 3532972c3ce3b785d5389783f72546e7a0fc9 192.168.0.228:6380
   slots: (0 slots) slave
   replicates ae8ca550b5585b20b4cc7511f7751437f6ee
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

踩坑

一开始执行的命令中我全部用hostname,但出现以下错误

(error) ERR Invalid node address specified: test-1:6379

网上找到原因说好像不支持hostname,于是改成使用ip,然后就可以正常运行了。

查看集群情况

[root@test-3 redis-6.2.5]# src/redis-cli 
127.0.0.1:6379> cluster nodes
3532972c7ce3b7885d38783f725486e7a0fc9 192.168.0.228:6380@16380 slave ae80cc550b1558b20b4acc7511f77514376ee 0 1629874202654 1 connected
25eb9ade4ac4c3478eb3fdb98e80c9e728f 192.168.0.141:6380@16380 slave d7ca930b74b77777397e0d2265b6cd5f5ca0 0 1629874204664 2 connected
d7ca9360b7b777e7797e05d265b64d5f5ca0 192.168.0.250:6379@16379 master - 0 1629874205000 2 connected 5461-10922
ae8cca550b15585b0b4acc751f7751437f6ee 192.168.0.129:6379@16379 master - 0 1629874206673 1 connected 0-5460
68569ee4c6b4b609881e7a3ee1b761b2ce285 192.168.0.228:6379@16379 myself,master - 0 1629874206000 3 connected 10923-16383
b648c92b55d017ec68c7d41ca9c24fc5d9160 192.168.0.141:6379@16379 slave 6856ee4c6b4b609881e734ee17c61b2ce285 0 1629874206000 3 connected

添加密码

每个节点都需要自己上去设置。然后因为有两个节点使用了6380端口,所以命令里需要加入-p 6380,其他节点用默认的即可。

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

推荐阅读更多精彩内容

  • 前言 哨兵模式虽然让读写分离更加高可用,但单台服务器由于本身的内存和CPU瓶颈,对于高并发和大数据业务的应用场景还...
    Code综艺圈阅读 260评论 0 0
  • 一、单节点实例 单节点实例还是比较简单的,平时做个测试,写个小程序如果需要用到缓存的话,启动一个 Redis 还是...
    八重樱勿忘阅读 490评论 0 1
  • 环境准备 VM准备3台机器centos7环境:192.168.217.132 root root192.168...
    风陵渡口误终身阅读 306评论 0 1
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 6,032评论 0 4
  • 公元:2019年11月28日19时42分农历:二零一九年 十一月 初三日 戌时干支:己亥乙亥己巳甲戌当月节气:立冬...
    石放阅读 6,870评论 0 2