windows下redis cluster的搭建和使用

一.准备工作

1.下载redis,我这里使用的是windows 64位的redis-3.0.504。需要下载Source code (zip)和Redis-x64-3.0.504.zip这两个文件。
2.Redis-x64-3.0.504.zip是redis编译好的exe可执行文件

文件 说明
redis-benchmark.exe 测试redis性能工具
redis-check-aof.exe 检查aof文件工具
redis-check-dump.exe 检查rdb文件工具
redis-cli.exe 命令行窗口工具
redis-server.exe redis服务器

3.Source code (zip)是redis源码文件,这个文件主要是使用其中src文件下的redis-trib.rb文件
4.redis-trib.rb文件是用ruby写的redis cluster的工具,redis集群的所有操作都可以通过该工具来完成
5.对bat文件的编写要有一定的了解

二.开始搭建

1. redis.conf配置(只写出我修改了的属性)

属性 说明
port 7001 端口为7001
save 300 10 300秒有10条记录改变了,则将数据保存入dump.rdb
dir ./data .rdb、.aof、nodes.conf文件存放地址为与redis-server同级下的data文件夹
masterauth 123456 slave连接主的密码
repl-backlog-size 64mb repl-backlog-size过小,会导致主从节点拉复制失败,因为全量复制的时候,父节点的更新(应用更新,主动过期删除等)会临时存放在backlog中待全量复制完成后增量发到子节点,必须为此保留足够的空间。
repl-timeout 180 slave和master之间的复制超时时间,默认为60s, 推荐设置为180s
requirepass 123456 redis访问密码,masterauth要与这个设置一致
appendonly yes 开启aof文件保存
cluster-enabled yes 开启redis集群
cluster-config-file nodes.conf cluster节点配置文件
cluster-node-timeout 15000 集群中的节点能够失联的最大时间,超过这个时间,该节点就会被认为故障。
client-output-buffer-limit (class) (hard limit) (soft limit) (soft seconds) class : 客户端种类,normal、slave、pubsub。
– mormal:普通的客户端
– slave: 从库的复制客户端
– pub/sub: 发布与订阅的客户端的
hard limit: 缓冲区大小的硬性限制。
soft limit: 缓冲去大小的软性限制。
soft seconds: 缓冲区大小达到了(超过)soft limit值的持续时间。
限制分配的缓冲区的大小,防止内存无节制的分配。参数的默认值都为0,意思是不做任何限制。

2. 创建redis集群文件夹

1.先创建一个主文件夹,然后以端口号为名称创建6个文件夹,官方文档中提到过

强烈建议使用六个节点: 其中三个为主节点, 而其余三个则是各个主节点的从节点。

2.我的目录结构如图(cmd中执行 tree /f 出现当前文件的目录结构)

└─redis cluster
    │  master-ip-port.properties--------主要配置文件
    │  node-add.bat---------------------调用redis-trib.rb的add-node命令创建redis cluster扩展cluster
    │  node-check.bat-------------------调用redis-trib.rb的check命令检查redis cluster
    │  node-del.bat---------------------调用redis-trib.rb的del-node命令删除redis cluster节点
    │  node-fix.bat---------------------调用redis-trib.rb的del-node命令检查redis cluster
    │  node-reshard.bat-----------------调用redis-trib.rb的reshard命令重新分片redis cluster的slots(槽点)
    │  node-slave-add.bat---------------调用redis-trib.rb的add-node命令添加master的slave
    │  remove-data-conf.bat-------------删除当前文件夹中所有以"master-"为前缀命名的文件夹中启动配置文件和data文件夹下文件的命令文件
    │  startup-allmaster.bat------------启动当前文件夹中所有以"master-"为前缀命名的文件夹中的redis实例的命令文件
    │  startup-cluster.bat--------------调用redis-trib.rb的create命令创建redis cluster
    │
    ├─master-7001
    │  │  redis-server.exe
    │  │  redis.conf--------------------启动配置文件
    │  │  startup-master.bat------------单个启动redis实例文件
    │  │
    │  ├─conf
    │  │      redis.conf----------------原始配置文件
    │  │
    │  └─data
    │          dump.rdb  
    │          nodes.conf
    │
    ├─master-7002
    │  。。。。。
    ├─master-7003
    │  。。。。。
    ├─master-8001
    │  。。。。。
    ├─master-8002
    │  。。。。。
    ├─master-8003
    │  。。。。。
    ├─redis-stat-------------------------监控redis状态的工具
    │      help.bat
    │      master-ip-port.properties-----监控配置文件,可以直接复制主配置文件替换
    │      redis-stat-0.4.14.jar---------监控工具jar包
    │      startup-monitor.bat-----------启动文件
    │
    ├─Redis-x64-3.0.504------------------备用的redis可执行文件文件
    │  。。。。。
    ├─Ruby24-x64-------------------------ruby安装文件,redis-trib.rb放在其中的bin文件夹下,免去安装ruby的步骤
    │  。。。。。

3. 使用方法

1.master-ip-port.properties配置文件参数说明

参数 说明 使用该参数的bat文件
master* 各redis实例的ip和port startup-cluster.bat
node-slave-add.bat
node-del.bat
node-check.bat
node-add.bat
replicas 调用redis-trib.rb的create命令的replicas参数,即每个master的slave个数 startup-cluster.bat
add-node* 扩展redis cluster时的主节点的ip和port node-add.bat
add-slave-node* 从节点的ip、port和主节点的node-id node-slave-add.bat
del-node-id* 要删除的节点的node-id node-del.bat

有*的参数表示可以配置多个,当执行bat文件时会循环参数执行命令

2.redis cluster启动执行顺序

  • 修改master-ip-port.properties中master*
  • remove-data-conf.bat(第一次启动可以不执行此文件)
  • startup-allmaster.bat
  • startup-cluster.bat

3.增加节点执行顺序

  • 修改master-ip-port.properties中add-node*
  • node-add.bat
  • 修改master-ip-port.properties中add-slave-node*
  • node-slave-add.bat
  • node-reshard.bat

node-reshard.bat执行增加时输入参数

  • 第一个:要为添加节点的添加多少个slots
  • 第二个:添加节点的node-id
  • 第三个:all或者目标节点的node-id

在执行添加重新分片时必须注意事项

  • 分片的slots很少,官方举例在写负载情况下只分片了100个slots
  • 分片的slots很多时,需要redis中没有值时才会成功,题主实践过分片2000,在有值情况下会报如下错误


在被重新分片的节点的slots时,在某些时候会少分配一个slots,这个问题感觉时redis-trib.rb脚本问题

3.删除节点执行顺序

  • 修改master-ip-port.properties中reshard-node*,改为要删除节点的ip和port
  • node-reshard.bat
  • 修改master-ip-port.properties中del-node-id*
  • node-del.bat

node-reshard.bat执行删除时输入参数
第一个:要删除节点的slots总和
第二个:接受槽点的节点node-id
第三个到第N个:要删除的节点的node-id,最后输入done结尾

最后

附上文件的下载地址
各位老铁看了下载了都评价下,欢迎拍砖,还有如果没有分想下载的可以留下邮箱。

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

推荐阅读更多精彩内容