博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis集群配置
阅读量:5267 次
发布时间:2019-06-14

本文共 4189 字,大约阅读时间需要 13 分钟。

本示例是伪集群模式,效果与真实集群相同。

ps:集群模式是将每台服务器中配置一个redis服务,伪集群模式是在一台服务器中配置N个redis服务。

一、准备

系统环境:win10企业版

服务程序:redis-3.2x64  

windows版下载地址:https://github.com/MicrosoftArchive/redis/releases(官方没有windows版,只有微软维护的64位版,最新版本是3.2版)

管理工具:rubyinstaller-2.3.3-x64  

下载地址:https://rubyinstaller.org/downloads/

集群管理命令工具:redis-trib.rb

这个文件需要到linux版本的redis中src下找到并copy到windows的redis目录下。

二、安装

1:redis我使用的是zip解压版,直接解压即可。

2:rubyinstaller安装选中复选框然后一路next即可。

3:安装ruby与redis接口,在cmd窗口运行:gem install redis

三、基础配置

1、在redis安装目录新建6个文件夹名称分别为7001、7002、7003、7004、7005、7006。这六个文件夹模拟6个redis服务并代表对外开放的端口号。

2、将redis.windows.conf文件复制到新建的6个文件夹中,每个文件夹中复制一个。

3、修改每个文件夹中的redis.windows.conf配置文件,将端口号、文件所在位置与所在文件夹名称修改相同,以下是最少选项的配置:

  port 7001        <!--必须。对应每个文件夹名称-->

  cluster-enabled yes  <!--必须。是否开启集群-->

  appendonly yes    <!--必须。开启aof数据保存方式-->

  dir ./7001/  <!--视情况而定。aof文件保存名称,保存在自己文件夹下-->

四、集群

1、启动:

cmd进入redis目录,使用命令redis-server.exe 7001/redis.windows.conf启动端口号为7001的redis服务,如下图表示启动成功。

接下来在将7002-7006全部启动。

redis-server.exe 7002/redis.windows.conf

redis-server.exe 7003/redis.windows.conf

redis-server.exe 7004/redis.windows.conf

redis-server.exe 7005/redis.windows.conf

redis-server.exe 7006/redis.windows.conf

前面是命令,后面是使用的资源文件。

 2、配置集群:cmd进入redis目录,执行命令ruby redis-trib.rb create --replicas 1 192.168.1.104:7001 192.168.1.104:7002 192.168.1.104:7003 192.168.1.104:7004 192.168.1.104:7005 192.168.1.104:7006

输入命令后会显示主从信息并询问您是否进行配置,输入yes继续。

D:\worksoft\Redis-x64-3.2.100>ruby redis-trib.rb create --replicas 1 192.168.1.104:7001 192.168.1.104:7002 192.168.1.104:7003 192.168.1.104:7004 192.168.1.104:7005 192.168.1.104:7006>>> Creating cluster>>> Performing hash slots allocation on 6 nodes...Using 3 masters:显示三个主节点192.168.1.104:7001192.168.1.104:7002192.168.1.104:7003Adding replica 192.168.1.104:7004 to 192.168.1.104:7001三个从节点Adding replica 192.168.1.104:7005 to 192.168.1.104:7002Adding replica 192.168.1.104:7006 to 192.168.1.104:7003M: 278b6affeb3f8d86bcfc2f6af60daa57c6426794 192.168.1.104:7001   slots:0-5460 (5461 slots) masterM: 53adba5f0949c0912e999bc1a9e0e46c5c6b6ad0 192.168.1.104:7002   slots:5461-10922 (5462 slots) masterM: b6b94a867af3bec92d4aef7ba2be3217ab570bfa 192.168.1.104:7003   slots:10923-16383 (5461 slots) masterS: d5df0e8affb346654b9584244d4b76f9b01605dd 192.168.1.104:7004   replicates 278b6affeb3f8d86bcfc2f6af60daa57c6426794S: 366479eed17c02a3a1472acda718e0b70deb9e75 192.168.1.104:7005   replicates 53adba5f0949c0912e999bc1a9e0e46c5c6b6ad0S: f7f475a323765eabd912fd4d959b4f810fca865a 192.168.1.104:7006   replicates b6b94a867af3bec92d4aef7ba2be3217ab570bfaCan 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 clusterWaiting for the cluster to join..>>> Performing Cluster Check (using node 192.168.1.104:7001)M: 278b6affeb3f8d86bcfc2f6af60daa57c6426794 192.168.1.104:7001   slots:0-5460 (5461 slots) master   1 additional replica(s)M: b6b94a867af3bec92d4aef7ba2be3217ab570bfa 192.168.1.104:7003   slots:10923-16383 (5461 slots) master   1 additional replica(s)S: d5df0e8affb346654b9584244d4b76f9b01605dd 192.168.1.104:7004   slots: (0 slots) slave   replicates 278b6affeb3f8d86bcfc2f6af60daa57c6426794S: 366479eed17c02a3a1472acda718e0b70deb9e75 192.168.1.104:7005   slots: (0 slots) slave   replicates 53adba5f0949c0912e999bc1a9e0e46c5c6b6ad0S: f7f475a323765eabd912fd4d959b4f810fca865a 192.168.1.104:7006   slots: (0 slots) slave   replicates b6b94a867af3bec92d4aef7ba2be3217ab570bfaM: 53adba5f0949c0912e999bc1a9e0e46c5c6b6ad0 192.168.1.104:7002   slots:5461-10922 (5462 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.

五、测试

使用命令redis-cli -c -h 192.168.1.104 -p 7001 连接集群。

-c表示集群

-h表示IP地址

-p表示端口

测试在7001set一个字符串,显示ok。

客户端连接自动转换的到7002,这是因为集群把这个值分配在了7002的插槽中,而且在7002中也可以get到刚设置的值。

再次测试连接7006,同样可以get到刚刚设置的值。

 

六、注意

1、我在配置集群时出现 [ERR] Sorry, can't connect to node 错误,原因之一是redis.windows.conf的bind 地址使用了127.0.0.1,将地址修改为服务器的固定ip后解决了。

2、开启集群后,也就是将cluster-enabled修改为yes后,使用连接单机redis方式不可用。

ps:本人初学可能有不当之处,请见谅。

 

转载于:https://www.cnblogs.com/yltang/p/7794049.html

你可能感兴趣的文章
数据生成XML导入Excel
查看>>
MVC返回400 /404/...
查看>>
第二次作业
查看>>
浏览Document文件夹下面的所有文件夹和文件列表
查看>>
Java中的栈:java.util.Stack类
查看>>
装饰者模式
查看>>
windows下如何将Python文件打包成.exe可执行文件
查看>>
bzoj1854[Scoi2010] 游戏
查看>>
Android ListView及其属性
查看>>
记第一次tc
查看>>
索引的一些总结
查看>>
ajax
查看>>
[bzoj 1270][BeijingWc2008]雷涛的小猫
查看>>
DirectShow OpenCV GDI+ 图形显示格式转换
查看>>
PHP利用FTP上传文件连接超时之开启被动模式解决方法
查看>>
rdesktop的使用
查看>>
each实现原理
查看>>
requests模块
查看>>
常用的Linux命令
查看>>
POJ 3624 Charm Bracelet
查看>>