Windows环境Redis集群部署配置

标签:Redis


工具/资料

windows系统环境Release 版本
https://github.com/MSOpenTech/redis/releases
https://github.com/MicrosoftArchive/redis/releases
Redis中文文档
http://redis.cn/documentation.html
Redis命令文档
http://redis.cn/commands.html
Redis命令参考
http://www.redisfans.com/
http://doc.redisfans.com/

3.0集群搭建部署参考文档
http://www.cnblogs.com/tommy-huang/p/6240083.html
http://doc.redisfans.com/topic/cluster-tutorial.html

Ruby 语言官网(中文)
http://www.ruby-lang.org/zh_cn/
20分钟体验 Ruby
http://www.ruby-lang.org/zh_cn/documentation/quickstart/
菜鸟教程
http://www.runoob.com/ruby/ruby-installation-windows.html

Ruby windows系统运行环境
http://rubyinstaller.org/downloads/

一、准备 Redis 3.0.504 运行程序

Redis 3.0.504 下载地址
https://github.com/MSOpenTech/redis/releases
下载msi安装包文件或后缀.zip文件,建议使用.zip文件
下载后解压到文件夹 Redis-x64-3.0.504 备用。

二、修改 redis.conf 配置文件

这里配置 638063816382 端口为集群主服务,配置 6383(从6380)、6384(从6381)、6385(从6382) 端口为从服务。

集群服务模板配置

Redis-x64-3.0.504 目录下 redis.windows.conf 复制改名 redis-cluster6380.conf 备用,制作集群模板配置文件。

修改模板配置文件以下位置:

port 6380

#logfile ""
logfile "D:/work/TfsRedis/Redis-x64-3.0.504/log/redis6380.log"

dbfilename dump6380.rdb

#dir ./
dir "D:/work/TfsRedis/Redis-x64-3.0.504"

################################ REDIS CLUSTER  ###############################
cluster-enabled yes
cluster-config-file nodes-6380.conf
cluster-node-timeout 15000
cluster-slave-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage yes

修改好后复制五份改名,分别为 redis-cluster6381.confredis-cluster6382.confredis-slave6383.confredis-slave6384.confredis-slave6385.conf

编写启动 Redis 服务批处理

本文档实验以命令行窗口形式运行Redis服务,在Redis目录下创建 redis-server-cluster.bat 批处理文件,右键菜单编辑打开,编写启动命令

start "Redis3.0.504-cluster6380" "D:\work\TfsRedis\Redis-x64-3.0.504\redis-server.exe" "D:\work\TfsRedis\Redis-x64-3.0.504\redis-cluster6380.conf"
start "Redis3.0.504-cluster6381" "D:\work\TfsRedis\Redis-x64-3.0.504\redis-server.exe" "D:\work\TfsRedis\Redis-x64-3.0.504\redis-cluster6381.conf"
start "Redis3.0.504-cluster6382" "D:\work\TfsRedis\Redis-x64-3.0.504\redis-server.exe" "D:\work\TfsRedis\Redis-x64-3.0.504\redis-cluster6382.conf"

start "Redis3.0.504-slave6383" "D:\work\TfsRedis\Redis-x64-3.0.504\redis-server.exe" "D:\work\TfsRedis\Redis-x64-3.0.504\redis-slave6383.conf"
start "Redis3.0.504-slave6384" "D:\work\TfsRedis\Redis-x64-3.0.504\redis-server.exe" "D:\work\TfsRedis\Redis-x64-3.0.504\redis-slave6384.conf"
start "Redis3.0.504-slave6385" "D:\work\TfsRedis\Redis-x64-3.0.504\redis-server.exe" "D:\work\TfsRedis\Redis-x64-3.0.504\redis-slave6385.conf"

保存关闭备用。

三、配置 Ruby Redis 集群管理命令工具

四、命令行设置 Redis 集群配置

建议新创建集群之前将 Redis 运行程序目录下的 nodes-638*.conf 删除

redis-trib.rb create --replicas 0 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382

--replicas 0 表示集群每个服务器有0个从服务器

redis-trib.rb create --replicas 1 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385

--replicas 1 表示集群每个服务器有1个从服务器
从服务器配置文件无需配置 slaveof <host> <port>redis-trib.rb create 命令会自动分配主从关系。

五、添加/删除节点

  • 添加节点命令
redis-trib.rb
add-node        new_host:new_port existing_host:existing_port
                --slave
                --master-id <arg>
  • 添加 master 节点
    命令示例
    redis-trib.rb add-node 127.0.0.1:6386 127.0.0.1:6380
    添加节点之后需要重新分配slot槽给新节点才能启用
    分配方式可以自定义,是平均分配还是从其他已有节点选取部分分配给新节点,都是可以自定义的

  • 添加 slave 节点
    命令示例
    redis-trib.rb add-node --slave 127.0.0.1:6387 127.0.0.1:6380
    添加从节点不需要slot槽重新分配

  • 重新分配
    从已有节点(6382)分配slot槽给新节点(6386)
    命令示例
    redis-trib.rb reshard 127.0.0.1:6386
    执行过程中有提示

PS D:\work\TfsRedis\Redis3.0cluster> .\redis-trib.rb reshard 127.0.0.1:6381
Connecting to node 127.0.0.1:6381: OK
Connecting to node 127.0.0.1:6380: OK
Connecting to node 127.0.0.1:6386: OK
Connecting to node 127.0.0.1:6385: OK
Connecting to node 127.0.0.1:6383: OK
Connecting to node 127.0.0.1:6384: OK
Connecting to node 127.0.0.1:6382: OK
>>> Performing Cluster Check (using node 127.0.0.1:6381)
M: d8ddc0ece223206991f242b8ee40e0974bba7a59 127.0.0.1:6381
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
M: b15315a9890ca334fefb446702cbb4686132f59d 127.0.0.1:6380
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
M: 0483b953078e6decc1d948918d024f9abf342d43 127.0.0.1:6386
   slots: (0 slots) master
   0 additional replica(s)
S: c3d8aa6bfcf83666dd0c387d6efe31be883a0720 127.0.0.1:6385
   slots: (0 slots) slave
   replicates b15315a9890ca334fefb446702cbb4686132f59d
S: c4ef5b13482681b3bdce4fbf4b1ac4133fe1e0d6 127.0.0.1:6383
   slots: (0 slots) slave
   replicates d8ddc0ece223206991f242b8ee40e0974bba7a59
S: 0b4d057755f4fd6d33d5ca01c0b71a5f0dc3fa74 127.0.0.1:6384
   slots: (0 slots) slave
   replicates 78e9d9a7ed3383aec838acb9af7eefebe8af54d7
M: 78e9d9a7ed3383aec838acb9af7eefebe8af54d7 127.0.0.1:6382
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
How many slots do you want to move (from 1 to 16384)? 600
What is the receiving node ID? 0483b953078e6decc1d948918d024f9abf342d43
Please enter all the source node IDs.
  Type 'all' to use all the nodes as source nodes for the hash slots.
  Type 'done' once you entered all the source nodes IDs.
Source node #1:d8ddc0ece223206991f242b8ee40e0974bba7a59
Source node #2:done
Ready to move 600 slots.
  Source nodes:
    M: d8ddc0ece223206991f242b8ee40e0974bba7a59 127.0.0.1:6381
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
  Destination node:
    M: 0483b953078e6decc1d948918d024f9abf342d43 127.0.0.1:6386
   slots: (0 slots) master
   0 additional replica(s)
  Resharding plan:
    Moving slot 5461 from d8ddc0ece223206991f242b8ee40e0974bba7a59
    ...
    Moving slot 6060 from d8ddc0ece223206991f242b8ee40e0974bba7a59
Do you want to proceed with the proposed reshard plan (yes/no)? yes
Moving slot 5461 from 127.0.0.1:6381 to 127.0.0.1:6386:
...
Moving slot 6060 from 127.0.0.1:6381 to 127.0.0.1:6386:
PS D:\work\TfsRedis\Redis3.0cluster>

How many slots do you want to move (from 1 to 16384)?
要重新分配多少槽(从1个到16384个),此处重新分配600个槽

What is the receiving node ID?
哪个节点接收600个槽,0483b953078e6decc1d948918d024f9abf342d43是节点的ID

Please enter all the source node IDs. Type 'all' to use all the nodes as source nodes for the hash slots. Type 'done' once you entered all the source nodes IDs. Source node #1:d8ddc0ece223206991f242b8ee40e0974bba7a59 Source node #2:done
这里意思是从哪个节点取这600个槽,两种获取方式
方式一,all表示从所有已有节点中取600个槽,是平均分配取,还是随机分配取,还需要验证。
方式二,指定从某个节点或某几个节点取600个槽,当指定的某个或某几个节点确定后输入done结束指定节点,从某几个节点取,是平均分配取还是随机分配取也需要验证。

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

推荐阅读更多精彩内容