搭建集群
- 配置规划Redis集群
- 编写bat来启动每个redis服务
- 安装Ruby
- 安装Redis的Ruby驱动
- 出现错误
- 镜像过期
- SSL证书过期
- 安装集群脚本redis-trib
- 启动每个节点并执行集群构建脚本
- 测试搭建是否成功
- 配置springboot项目中
配置规划Redis集群
我们搭建三个节点的集群,每个节点有一主一备。
把redis原文件夹再复制5份,每份用不同而端口号命名
由于 redis 默认端口号为 6379,那么其它5份的端口可以为6380,6381,6382,6383,6384
打开每个文件夹下的文件 redis.windows.conf,修改里面的端口号,以及集群支持配置
-
配置端口
-
配置支持集群
编写bat来启动每个redis服务
在每个节点目录下建立 start.bat,内容如下:
title redis-6379
redis-server.exe redis.windows.conf
安装Ruby
redis的集群使用 ruby脚本编写,所以系统需要有 Ruby 环境
https://rubyinstaller.org/downloads/archives/
直接下载 Ruby+Devkit Installers
要选择2.5版本以上的,不然之后执行集群构建脚本会报错ruby版本太低
安装Ruby时的几个选项勾选全勾上。
安装Redis的Ruby驱动
下载 RubyGems,下载后解压到redis目录下:例如D:\Redis\rubygems-3.4.7
地址:https://rubygems.org/pages/download#formats
之后在目录下进入命令行,执行ruby setup.rb
然后GEM 安装 Redis :切换到redis安装目录,需要在命令行中,执行 gem install redis
出现错误
镜像过期
ERROR: Could not find a valid gem ‘redis’ (>= 0), here is why:
Unable to download data from https://rubygems.org/ - SSL_connect SYSCALL returned=5 errno=0 state=SSLv2/v3 read server hello A (https://rubygems.org/latest_specs.4.8.gz)
首先将查看自己的镜像
gem sources -l
再将之前的镜像删除
gem sources --remove 已有镜像
然后添加最新的镜像
gem sources --add https://gems.ruby-china.com/
之后查看是否镜像列表只有这个最新的镜像
SSL证书过期
改完镜像后,仍然出现错误:
ERROR: SSL verification error at depth 1: unable to get local issuer certificate (20)
ERROR: You must add /O=Digital Signature Trust Co./CN=DST Root CA X3 to your local trusted store
Error fetching https://gems.ruby-china.com/:
SSL_connect returned=1 errno=0 state=error: certificate verify failed (https://gems.ruby-china.com/specs.4.8.gz)
在本地文件中找到一个.gemrc的文件,这个里面是gem的源文件地址。一般都是在你使用的用户目录下或者搜索也行
打开文件,修改为:
---
:backtrace: false
:bulk_threshold: 1000
:sources:
- https://gems.ruby-china.com/
:update_sources: true
:verbose: true
:ssl_verify_mode: 0
看镜像源是否正确,同时ssl_verify_mode:0 不再验证
安装集群脚本redis-trib
redis-trib.rb的链接,从对应版本(redis3.2.0即可)的源码压缩包中src文件夹下找到对应的redis-trib.rb文件使用
保存redis-trib.rb文件到一个Redis的目录下,例如放到Redis目录下
启动每个节点并执行集群构建脚本
双击每个redis目录下的 start.bat
启动每个节点的Redis服务
之后切换到Redis目录下,在命令行中执行:
ruby 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
–replicas 1 表示每个主数据库拥有从数据库个数为1。master节点不能少于3个,所以我们用了6个redis
在出现 Can I set the above configuration? (type ‘yes’ to accept): 请确定并输入 yes
测试搭建是否成功
在redis目录下进入命令行,输入redis-cli –c –h ”地址” –p "端口号"
; c 表示集群
例如redis-cli -c -h 127.0.0.1 -p 6379
之后进入对应服务后,输入dbsize查询 记录总数
输入cluster info可以从客户端的查看集群的信息
如果都正常,则搭建成功
配置springboot项目中
在application.yml中对redis集群进行配置:
spring:
redis:
database: 11
# single-Redis
# host: localhost
# port: 6379
jedis:
pool:
max-idle: 100
min-idle: 1
max-active: 1000
max-wait: -1
timeout: 100000
# redisCluster
cluster:
nodes:
- 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
之后就能正常使用,在项目中搭建了Redis集群~