这次是配置redis主从

  1. 主redis数据库配置方式省略,因为只是正常的配置redis外网访问的流程. 并不是作者忘了
  2. 在完成上述操作之后,使用
redis-server info

可以查看当前redis运行状况,replication中显示的role为当前数据库身份,主数据库显示master,即为启动配置主数据库成功

  1. 配置从数据库
    - 这里的配置不同于主数据库,并不需要太过于复杂
protected-mode no # 把保护模式设置为no,如果这里是yes,那么修改为no
port 6379  #端口号6379保持不变
daemonize no  #这里修改为no,表示redis服务可以后台运行
slaveof 192.168.124.20 6379  #由于是从服务器,所以要配置其主服务器,配置格式:slaveof  主IP  主端口号
- 配置好之后,启动从数据库
redis-server redis.conf
# 这里必须指定我们设定的conf文件进行启动,否则之前的修改将不生效
- 再次输入
redis-server info
查看,可看到显示role为slave

设置哨兵集群的方式

  1. 在redis根目录创建文件sentinel.conf
# 当前Sentinel服务运行的端口
port 26379
# 保护模式 no
protected-mode no

# Sentinel去监视一个名为mymaster的主redis实例,
# 这个主实例的IP地址为本机地址127.0.0.1,端口号为6379,
# 而将这个主实例判断为失效至少需要2个Sentinel进程的同意,只要同意Sentinel的数量不达标,自动failover就不会执行
# 如果提供外网访问,实例的IP地址为服务器地址10.0.128.144。
sentinel myid ca7a3602308b20f77464a51bd29e26e48055fd1a

# down-after-milliseconds指定了Sentinel认为Redis实例已经失效所需的毫秒数。
# 当实例超过该时间没有返回PING,或者直接返回错误,那么Sentinel将这个实例标记为主观下线。
# 只有一个Sentinel进程将实例标记为主观下线并不一定会引起实例的自动故障迁移:只有在足够数量的Sentinel都将一个实例标记为主观下线之后,实例才会被标记为客观下线。
# 这时自动故障迁移才会执行
sentinel deny-scripts-reconfig yes

# parallel-syncs指定了在执行故障转移时,最多可以有多少个从Redis实例在同步新的主实例,
# 在从Redis实例较多的情况下这个数字越小,同步的时间越长,完成故障转移所需的时间就越长
sentinel monitor mymaster 120.26.175.79 6379 2

# 如果在failover-timeout该时间(ms)内未能完成failover操作,则认为该failover失败
sentinel down-after-milliseconds mymaster 5000
# Generated by CONFIG REWRITE
dir "C:\\Users\\Administrator"
sentinel failover-timeout mymaster 15000
sentinel config-epoch mymaster 0
sentinel leader-epoch mymaster 0
sentinel known-slave mymaster 115.59.41.123 6379
sentinel current-epoch 0
  1. 使用此文件启动哨兵
redis-server sentinel.conf --sentinel
  1. 重复以上步骤,即可实现哨兵集群

相比较起来, 部署还是比较简单的.

不过需要注意的是, windows版本的redis仅仅只到3.2, redis官方并未继续编译后续版本的redis, 也就是说,如果你使用的主数据库为linux的高版本的话,可能会出现无法解析rdb文件的情况.

这种情况的话,推荐下载高版本的redis安装包.

REDIS 高版本下载