公司redis集群重启,服务器宕机,本地模拟生产环境
参考其他同学文章,本地搭建redis 9server主从模式,总结如下:
一、相关资源借鉴
参考:https://www.cnblogs.com/student-note/p/12382931.html
1、ruby环境,redis的ruby驱动,redis客户端,redis服务端,
链接:https://pan.baidu.com/s/17AMdOcBA8OX1UfSX-TkFQA
提取码:eqf1
2、安装ruby环境,双击安装。。。
下图标红地方必选
win+r,命令行验证
ruby -y
二、操作步骤
1、服务端对应复制,根据端口命名(方便使用)
2、对应修改redis.windows.conf,
需要修改的配置信息如下:
port 6380(这里为每个具体的端口,这里就是7000,70001这些)
cluster-enabled yes (注意去除配置文件中的# 否则不生效)
cluster-config-file nodes.conf (注意去除配置文件中的# 否则不生效)
cluster-node-timeout 15000 (注意去除配置文件中的# 否则不生效)
appendonly yes (注意去除配置文件中的# 否则不生效)```
3、增加启动脚本(方便使用)
脚本名:start.bat,内容如下:
```bash
redis-server.exe redis.windows.conf
目录级如下:
三、开始配置
1、启动相应服务(双击start.bat )
2、win+r 进入控制台,进入rubygems-2.7.7文件夹,
执行命令:
ruby setup.rb
3、安装完rubygames 后 控制台进入7000这个文件夹 安装redis
使用命令
gem install redis --version=3.3.5
如果遇到安装失败,请更换 source
1.移除国外镜像源
gem sources --remove https://rubygems.org/
2.添加国内镜像源
gem sources --add https://gems.ruby-china.com/
3.使用 gem source 可查看当前使用的source
gem source
切换失败参考:
SSL verification error at depth 1
使用地址:http://curl.haxx.se/ca/cacert.pem下载cacert.pem文件,设置环境变量SSL_CERT_FILE,值为指向cacert.pem文件的位置,重新切换源即可
set SSL_CERT_FILE=ruby路径\cacert.pem
4、找到redis集群的rb脚本,在redis-win-3.0.504\src目录下,找到redis-trib.rb 文件后 将他复制到7000 这文件夹的目录下
5、创建集群
ruby redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7006 127.0.0.1:7007 127.0.0.1:7008 127.0.0.1:7009
接下来程序需要你确认,输入yes 回车即可
6、输出ok即可
创建集群报错:
ERR Slot 0 is already busy
错误提示是说:slot插槽被占用了、这是因为 搭建集群前时,以前redis的旧数据和配置信息没有清理干净
解决方案:
用redis-cli 登录到每个节点执行 flushall 和 cluster reset 就可以了
redis-cli.exe -c -p 7000
flushall
cluster reset
参考:异常处理
7、测试集群是否搭建成功
进入7000文件夹,
win+r
redis-cli.exe -c -p 7000
set mango 11
set mango1 22
可用看到节点在保存值的时候发生了重定向, 说明集群开启成功了