Windows下离线部署Redis主从集群
缘起
网上很多关于Redis的安装教程都是基于Linux的,有一部分是基于是windows的,但都是在线的,这在生产环境有时候是不适用的,因为生产环境一般都是离线的,那么有没有办法在离线的情况下再windows上装一个Redis集群呢?
一、安装依赖
1.安装Ruby环境
这一步比较简单,直接点击我的提供资源中的安装包下一步下一步就完事了
2.安装redis.gem
讲道理如果你联网的情况下你是可以通过如下命令安装的
gem install redis
但如果没网的情况就要采用如下命令(记得把路径换成你自己的,别傻乎乎自己拷贝过去运行。。。gem包在下载我提供的包里有)
gem install --local E:appredis-3.3.0.gem
二、安装配置Redis
1.在redis目录下创建6个节点的文件夹:7000-7005
2.将redis下面的文件复制到各个节点文件夹下面
3.修改6个文件夹下redis.windows.conf 文件配置
port 7000
cluster-enabled yes
cluster-config-file nodes-7000.conf
cluster-node-timeout 15000
appendonly yes
改端口的,记得不同的节点改成不同的。
如果cluster-enabled 不为yes, 那么在使用JedisCluster集群代码获取的时候,会报错。
cluster-node-timeout 调整为 15000,那么在创建集群的时候,不会超时。
cluster-config-file nodes-6379.conf 是为该节点的配置信息,这里使用 nodes-端口.conf命名方法。服务启动后会在目录生成该文件。
4.编写一个bat来启动redis,在每个节点目录下创建start.bat,内容如下(端口记得对应):
title redis-7000
redis-server.exe redis.windows.conf
5.把文件夹中的redis-trib.rb复制到redis目录
6.启动每个节点并且执行集群构建脚本
先在 redis目录命令行下执行
redis-server.exe redis.windows.conf
把每个节点的 start.bat 文件点击运行
在切换到redis目录下命令行执行
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:7005
在出现 Can I set the above configuration? (type 'yes' to accept): 请确定并输入 yes 。
到此集群就装好了
三、测试
操作某个节点指令 在 E:/app/Redis-x64-3.0.504 下执行
redis-cli.exe -c -p 7000
在7000节点存储一个键
Set test zxh
重新打开一个cmd窗口连接7001节点
redis-cli.exe -c -p 7001
取出7001的值
get test
说明集群数据同步成功
懒癌患者的福音
为防懒癌患者,我提供一个已经配置好的安装包,讲道理,你只需要执行上面的第一项的安装依赖里面的内容,并且执行第二项安装redis中的第6步,就可以搭建完毕了,配置好的安装包如下下载。
https://download.csdn.net/download/qq32933432/12450516
写在最后
这种方式实际上只是搭建了最普通的redis主从集群,但实际上这种集群模式是存在问题的,比如不会自动选举。
master节点挂了以后,redis就不能对外提供写服务了,因为剩下的slave不能成为master。所以,就有了sentinel模式,下一篇文章我会写写怎么在windows上搭建sentinel模式的redis集群
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- C# dotnet 使用 startIndex 提升 IndexOf 的性能
- vscode .vue文件格式配置 使其与webstorm设置一致
- Go 语言学习之 slice
- koa2实现微信公众号关注自动回复消息
- 两个字数字字符串求和
- 设计模式(二):Android 源码中的工厂模式
- MoveIt!之ROS1Melodic版本发布(MoveItCpp教程)
- 机器学习第1天:线性回归(代码篇)
- PHP二分查找
- OnClick 的另一种书写
- JVM系列之:JIT中的Virtual Call
- 速读原著-UnixLinux基础(五)
- Celery在Django中的简单应用
- 基于数据库Binlog 的业务系统操作日志实现方案(阿里中间件Canal)
- 速读原著-UnixLinux基础(三)