一、集群知识
1.集群的概念
所谓的集群,就是通过添加服务器的数量,提供相同的服务,从而让服务器达到一个稳定、高效的状态。
2.使用redis集群的必要性
问题:我们已经部署好了redis,并且能启动一个redis,实现数据的读写,为什么还要学习redis集群?
答:(1)单个redis存在不稳定性。当redis服务宕机了,就没有可用的服务了。
(2)单个redis的读写能力是有限的。
总结:redis集群是为了强化redis的读写能力。
3.如何学习redis集群
说明:(1)redis集群中,每一个redis称之为一个节点。
(2)redis集群中,有两种类型的节点:主节点(master)、从节点(slave)。
(3)redis集群,是基于redis主从复制实现的。
所以,学习redis集群,就是从学习redis主从复制模型开始的。
二、准备工作
Redis下载地址:https://github.com/MicrosoftArchive/redis/releases
Ruby语言运行环境下载:https://rubyinstaller.org/downloads/
Redis的Ruby驱动redis-xxxx.gem下载:https://rubygems.org/pages/download
创建Redis集群的工具redis-trib.rb:https://raw.githubusercontent.com/antirez/redis/unstable/src/redis-trib.rb
PS:以上所有工具关注最下方公众号,点击软件目录,可以直接下载百度网盘
三、安装配置Redis
1.下载Redis-x64-3.2.100.zip,点击下载Redis
要让集群正常运作至少需要3个主节点,建议配置3个主节点,其余3个作为各个主节点的从节点(也是官网推荐的模式)。
所以需要6台虚拟机,本文配置了6个节点,根据您的需求合理安排。
主节点崩溃,从节点的Redis就会提升为主节点,代替原来的主节点工作,崩溃的主Redis恢复工作后,会再成为从节点。
2.创建Redis集群目录,把 redis 解压后,再复制出 11份,配置 六主六从集群。 由于 redis 默认端口号为 6379,那么其它5份的端口可以为6380,6381,6382,6383,6384,6385,6386,6387,6388,6389,6390 并且把目录使用端口号命名,如下图示例:
3.修改配置文件,打开每个Redis目录下的文件 redis.windows.conf,修改里面的端口号分别对应相对应的文件夹名:6379、6380,6381,6382,6383,6384,6385,6386,6387,6388,6389,6390再修改集群支持配置,将以下配置前面的#去掉。
cluster-enabled yes cluster-config-file nodes-6379.conf cluster-node-timeout 15000 appendonly yes
cluster-config-file nodes-6379.conf 是为该节点的配置信息,这里使用 nodes-端口.conf命名方法。服务启动后会在目录上生成该文件。
4.编写启动脚本,或者进入每个端口命名的文件夹下启动服务,编写一个 bat 来启动 redis,在每个节点目录下建立 startup.bat,内容如下:
title redis-6379 redis-server.exe redis.windows.conf
title命名规则 redis-相对应的端口。
四、安装Ruby
1. redis的集群使用 ruby脚本编写,所以系统需要有 Ruby 环境 ,点击下载Ruby 环境
2.下载成功后,点击安装,三个都要选上后下一步(安装位置不要使用中文)。
五、安装Redis的Ruby驱动redis-xxxx.gem
1.点击下载redis-xxxx.gem
2.下载成功后,解压当前目录切换到解压目录中,如C:\Users\fuzongle\Desktop\redis集群\redis-cluster\rubygems-3.1.4 然后命令行执行 ruby setup.rb,
再用 GEM 安装 Redis :切换到redis安装目录,需要在命令行中,执行 gem install redis
五 安装集群脚本redis-trib
1.点击下载redis-trib.rb,打开该链接把里面的脚本保存为redis-trib.rb,建议保存到一个Redis的目录下(不用每个都放),例如放到6379目录下。
redis-trib.rb集群的命令为 redis-trib.rb create --replicas 1 127.0.0.1:6379 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 127.0.0.1:6386 127.0.0.1:6387 127.0.0.1:6388 127.0.0.1:6389 127.0.0.1:6390
注意:--replicas 1 表示每个主数据库拥有总数据库个数为1。master节点不能少于3个,这里我使用了6个主节点,6个从节点
2.启动之后,可以看到主从库地址,点击yes,下次就不需要重新执行这个命令了,直接启动每个redis 即可。
六、连接集群测试
下载redis客户端连接即可