Windows下Redis集群搭建.docx
- 文档编号:22991856
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:12
- 大小:535.90KB
Windows下Redis集群搭建.docx
《Windows下Redis集群搭建.docx》由会员分享,可在线阅读,更多相关《Windows下Redis集群搭建.docx(12页珍藏版)》请在冰豆网上搜索。
Windows下Redis集群搭建
Windows下搭建Redis集群
Redis集群简介
Redis是一个开源的key-value存储系统,由于出众的性能,大部分互联网企业都用来做服务器端缓存。
Redis在3.0版本前只支持单实例模式,虽然支持主从模式、哨兵模式部署来解决单点故障,但是现在互联网企业动辄大几百G的数据,可完全是没法满足业务的需求,所以,Redis在3.0版本以后就推出了集群模式。
Redis集群采用了P2P的模式,完全去中心化。
Redis把所有的Key分成了16384个slot,每个Redis实例负责其中一部分slot。
集群中的所有信息(节点、端口、slot等),都通过节点之间定期的数据交换而更新。
Redis客户端可以在任意一个Redis实例发出请求,如果所需数据不在该实例中,通过重定向命令引导客户端访问所需的实例。
集群搭建
要让集群正常运作至少需要三个主节点,不过在刚开始试用集群功能时,强烈建议使用六个节点:
其中三个为主节点,而其余三个则是各个主节点的从节点。
主节点崩溃,从节点的Redis就会提升为主节点,代替原来的主节点工作,崩溃的主Redis回复工作后,会成为从节点
1).创建Redis集群目录
在redis安装的根目录下通过命令行创建6个以端口命名的文件夹
mkdir700070017002700370047005
将安装的redis文件夹中的redis.windows.conf以及redis-server,分别拷贝到新建的六个文件夹中
2).更改配置
将六个文件夹下的redis.windows.conf文件中以下属性进行修改:
port7001(对应文件夹的端口号)
cluster-enabledyes(开启实例的集群模式)去掉注释
cluster-config-filenodes.conf(保存节点配置文件,默认值为nodes.conf )去掉注释
cluster-node-timeout5000(是集群中各节点相互通讯时,允许"失联"的最大毫秒数,上面的配置为5秒,如果超过5秒某个节点没向其它节点汇报成功,认为该节点挂了。
)去掉注释
appendonlyyes(启用AOF持久化方式)
注意:
先不要设置密码,即将requirepass注释掉
3).启动6个redis服务
redis-serverredis.windows.conf
安装成Windows服务
启动命令行到六个文件夹下,依次运行
redis-server--service-installredis.windows.conf--service-nameredis7000
redis-server--service-installredis.windows.conf--service-nameredis7001
redis-server--service-installredis.windows.conf--service-nameredis7002
redis-server--service-installredis.windows.conf--service-nameredis7003
redis-server--service-installredis.windows.conf--service-nameredis7004
redis-server--service-installredis.windows.conf--service-nameredis7005
安装完毕后,进入Window的管理->服务,依次启动六个redis服务,见下图
4).安装Ruby-Windows
下面列出了在Windows机器上安装Ruby的步骤。
注意:
在安装时,您可能有不同的可用版本。
∙Window系统下,我们可以使用RubyInstaller来安装Ruby环境,下载地址为:
https:
//rubyinstaller.org/downloads/
∙下载Ruby2.5.1-2(x64)之后,解压到新创建的目录下:
∙双击rubyinstaller-2.5.1-2-x64文件,启动Ruby安装向导。
∙点击Next,继续向导,记得勾选 AddRubyexecutablestoyourPATH,直到Ruby安装程序完成Ruby安装为止。
∙安装后,通过在命令行中输入以下命令来确保一切工作正常:
$ruby-v
ruby2.2.3
5).安装RubyGem–Windows
∙进入https:
//rubygems.org/pages/download下载RubyGems(ZIP文件)
∙解压缩rubygems-2.7.7.zip,双击运行解压后文件夹根目录下的setup.rb
∙更换gem镜像,启动命令行运行gemsources--addhttps:
//gems.ruby---removehttps:
//rubygems.org/
∙安装Ruby的redis接口,命令行运行geminstallredis
6).创建启动集群
由于创建启动集群需要redis-trib.rb文件,它是一个Ruby程序,这个程序通过向实例发送特殊命令来完成创建新集群,检查集群或者对集群进行重新分片(reshared)等工作。
Windows的redis安装文件中是没有这个文件的,我们需要去官网下载Redis,官网的Redis是Linux版本,在其源码src文件夹下,将redis-trib.rb拷贝到本机中Redis的安装目录中
最后进入redis-trib.rb文件所在目录执行:
rubyredis-trib.rbcreate--replicas1 127.0.0.1:
7000127.0.0.1:
7001127.0.0.1:
7002127.0.0.1:
7003127.0.0.1:
7004127.0.0.1:
7005
敲回车后出现下图对话框,可以发现,7000-7002 为主节点,7003-7005为从节点,并向你确认是否同意这么配置。
输入 yes 后,会开始集群创建。
安装成功后见下图:
7).连接集群进行测试
连接集群的指令:
redis-cli-c-h127.0.0.1-p7000
然后进入redis控制台后输入setnameaaa,出现下图
出现了 Redirectedtoslot 信息并自动连接到了7001节点,这也是集群的一个数据分配特性.至此,RedisCluster在Windows上的配置就完成了!
8)Redis集群数据分配策略:
Redis采用一种叫做哈希槽 (hashslot)的方式来分配数据,rediscluster默认分配了16384个slot,当我们set一个key时,会用CRC16(循环冗余检验码)算法来取模得到所属的slot,然后将这个key分到哈希槽区间的节点上,具体算法就是:
CRC16(key)%16384
注意的是:
必须要3个以后的主节点,否则在创建集群时会失败,三个节点分别承担的slot区间是:
节点A覆盖0-5460;
节点B覆盖5461-10922;
节点C覆盖10923-16383.
所以上图中按照rediscluster的哈希槽算法:
CRC16(‘name’)%16384
被分配到了7001端口的redis服务上。
9)安装过程常见错误:
∙管理员权限命令行
如果redis安装目录放在系统盘,会遇到操作权限的问题,可在桌面建立一个cmd的快捷方式,如下图:
完成后右键点击该快捷方式,选择属性
点快捷方式->高级
最后勾上“用管理员身份运行”
创建完毕,以后就可以用该快捷方式启动命令行,不用再受权限困扰了
∙window下安装redis报错:
creatingservertcplisteningsocket127.0.0.1:
6379:
bindNoerror
的解决方案如下,按顺序输入如下命令就可以连接成功
1.redis-cli.exe
2. shutdown
3. exit
4.redis-server.exe redis.windows.conf
∙创建redis服务时报错:
D:
\ProgramFiles\redis>redis-server.exe--service-installredis.windows.conf--loglevelverbose
[12820]06Sep11:
00:
26.431#HandleServiceCommands:
systemerrorcaught.errorcode=1073,message=CreateServicefailed:
unknownerror
原因:
系统服务中已经存在
解决办法:
1)先卸载服务:
redis-server--service-uninstall
2)删除widows服务
输入scdelete服务名称
3)删除redis文件加下的appendonly.aof和nodes.conf文件
4)然后再安装:
redis-server--service-installredis.windows.conf
启停:
启动服务:
redis-server--service-start
停止服务:
redis-server--service-stop
∙如果出现[ERR]Sorry,can'tconnecttonode错误:
1.ruby和rubygem版本太低,安装新版本。
查看gem版本和redis版本(redis-cli-v可查看redis版本)
2.查看reids配置文件,bind绑定的允许连接的ip是否正确。
3.是否redis配置文件还是使用了密码,使用了密码也可能导致这个错误。
∙如果出现[ERR]Node127.0.0.1:
7005isnotempty.Eitherthenodealreadyknowsothernodes(checkwithCLUSTERNODES)orcontainssomekeyindatabase0:
表示集群时,之前的redis已有数据,那么登录到7005的redis中,执行FLUSHALL即可
∙如果出现ERRSlot0isalreadybusy(Redis:
:
CommandError):
用redis-cli登录到每个节点执行flushall和clusterreset即可2.6进入集群:
./redis-cli-c -p7001-h123.123.123.123(-c即-cluster表示进入集群模式,不加表示进入单机redis)
说明:
redis-trib.rb create,这表示我们希望创建一个新的集群。
--replicas1表示我们希望为集群中的每个主节点创建一个从节点。
之后的参数则是实例的地址列表,程序使用这些地址所指示的实例来创建新集群。
这个命令在这里用于创建一个新的集群,选项–replicas1表示我们希望为集群中的每个主节点创建一个从节点。
之后跟着的其他参数则是这个集群实例的地址列表,3个master3个slave
redis-trib会打印出一份预想中的配置给你看,如果你觉得没问题的话,就可以输入yes,redis-trib就会将这份配置应用到集群当中,让各个节点开始互相通讯。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Windows Redis 集群 搭建