TIP

# 本篇:windows10本地注册Redis多服务构建Redis集群

# 目录

  1. 安装Redis/Ruby

  2. Redis主从复制

    1. 准备实例和配置
    2. 启动及测试
  3. 注册redis服务

  4. 搭建哨兵集群

    1. 准备哨兵实例和配置
    2. 哨兵启动及测试
  5. Cluster集群

    1. 准备Cluster实例和配置
    2. Cluster启动及测试
  6. 搭建过程中遇到的坑

# 安装redis/Ruby

redis文件结构:

redis结构

注:redis 3.0版本及以上才支持集群

# redis主从复制

# 准备实例和配置

  • 主节点配置文件:

    #主节点配置文件内容
    # 设置Redis端口号,默认是6379
    port 6000 #端口可自定义
    bind 127.0.0.1
    daemonize yes
    #日志记录
    logfile "./redis-master-slave/redis-master-6000.log"
    
    1
    2
    3
    4
    5
    6
    7
  • 从节点配置文件:

    port 6001 #端口可自定义
    bind 127.0.0.1
    daemonize yes
    replica-read-only yes # 从节点是否只读,yes表示只读,no表示可读写
    # 开启主从复制
    slaveof 127.0.0.1 6000
    #日志记录
    logfile "./redis-master-slave/redis-slave-6001.log"
    
    1
    2
    3
    4
    5
    6
    7
    8

    # 创建多个从节点可复制上述从节点配置内容并更改不同的端口号。

# 启动及测试

启动命令:redis-server.exe 配置文件地址 --loglevel 日志级别

#启动主节点命令
redis-server.exe ./redis-master-slave/redis-master-6000.conf --loglevel verbose
1
2
#启动从节点命令
redis-server.exe ./redis-master-slave/redis-master-6000.conf --loglevel verbose
1
2

文件目录:

redis主从文件目录

在目录Redis-x64-5.0.14.1下进入cmd执行上述命令,内容如下:

redis主从启动

redis主从启动

至此主从复制也就配置成功了。

# 注册redis服务

为了方便,注册redis服务。

注册命令:redis-server.exe --service-install 配置文件地址 --service-name 服务名称 --loglevel 日志级别

#注册主节点6000服务
redis-server.exe --service-install ./redis-master-slave/redis-master-6000.conf --service-name redis-master-6000 --loglevel verbose

#注册从节点6001服务
redis-server.exe --service-install ./redis-master-slave/redis-slave-6001.conf --service-name redis-master-6001 --loglevel verbose

#注册从节点6002服务
redis-server.exe --service-install ./redis-master-slave/redis-slave-6002.conf --service-name redis-master-6002 --loglevel verbose


1
2
3
4
5
6
7
8
9
10

注册成功,打开windows服务管理,查看redis服务,可手动启动/停止服务

'redis服务注册'

cmd打开执行redis-cli.exe -h 127.0.0.1 -p 6000即可启动redis主节点服务(注:需要将redis安装目录放入系统变量)

'redis服务'

# 搭建哨兵集群

哨兵集群的搭建和主从复制类似,但是哨兵集群需要新增配置文件。

# 准备实例和配置

  • 哨兵1配置文件:

    # 哨兵sentinel实例运行的端口
    port 26378
    # 本地ip
    bind 127.0.0.1
    #已守护进程运行
    daemonize yes
    #防止通过Sentinel动态地更改脚本
    sentinel deny-scripts-reconfig yes
    # 哨兵监听的主服务器 后面的2表示主机挂掉以后进行投票,只需要2票就可以从机变主机
    sentinel monitor mymaster 127.0.0.1 6000 2
    # 设置未得到主机响应时间,此处代表5秒未响应视为宕机
    sentinel down-after-milliseconds mymaster 5000
    # 设置等待主机活动时间,此处代表15秒主机未活动,则重新选举主机
    sentinel failover-timeout mymaster 15000
    # 设置重新选举主机后,同一时间同步数据的从机数量,此处代表重新选举主机后,每次2台从机同步主机数据,直到所有从机同步结束
    sentinel config-epoch mymaster 2
    # 执行故障转移时, 最多有2个从服务器同时对新的主服务器进行同步
    sentinel leader-epoch mymaster 2
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
  • 哨兵2配置文件:

    # 哨兵sentinel实例运行的端口
    port 26379
    # 本地ip
    bind 127.0.0.1
    #已守护进程运行
    daemonize yes
    #防止通过Sentinel动态地更改脚本
    sentinel deny-scripts-reconfig yes
    # 哨兵监听的主服务器 后面的2表示主机挂掉以后进行投票,只需要2票就可以从机变主机
    sentinel monitor mymaster 127.0.0.1 6001 2
    # 其他内容复制哨兵1
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
  • 哨兵3配置文件:

    # 哨兵sentinel实例运行的端口
    port 26380
    # 本地ip
    bind 127.0.0.1
    #已守护进程运行
    daemonize yes
    #防止通过Sentinel动态地更改脚本
    sentinel deny-scripts-reconfig yes
    # 哨兵监听的主服务器 后面的2表示主机挂掉以后进行投票,只需要2票就可以从机变主机
    sentinel monitor mymaster 127.0.0.1 6002 2
    # 其他内容复制哨兵1
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11

# 哨兵启动及测试

启动命令:redis-server.exe 哨兵配置文件路径 --sentinel

启动成功如下:

'redis哨兵测试图'

当然,你也可以将哨兵注册成服务,注册命令: redis-server.exe --service-install 哨兵配置文件路径 --service-name 服务名称 --sentinel

# cluster集群

Cluster配置文件目录: 'redis Cluster配置文件'

# 准备cluster实例和配置

  • redis-7001.conf配置文件:

    #实例运行的端口
    port 7001
    cluster-enabled yes
    cluster-config-file nodes-7001.conf
    cluster-node-timeout 5000
    appendonly yes
    
    1
    2
    3
    4
    5
    6
    #注册cluster节点7001服务
    redis-server.exe --service-install ./redis-cluster/redis-7001.conf --service-name redis-cluster-7001 --loglevel verbose
    
    #注册cluster节点7002服务
    redis-server.exe --service-install ./redis-cluster/redis-7002.conf --service-name redis-cluster-7002 --loglevel verbose
    
    #注册其他cluster节点参考上述7001和7002
    
    1
    2
    3
    4
    5
    6
    7

注册好redis后查看服务,内容如下:

'redis-cluster服务'

  • redis服务注册后,需手动启动服务

# cluster集群启动及测试

启动服务:

'redis-cluster服务'

待完善中...

# 搭建过程中遇到的问题

  • 使用redis3.0版本在启动主从复制时,遇到报错:
Invalid argument during startup: unknown conf file parameter : replicaof
1

原因:Redis 版本过旧,不支持replicaof参数。