1. 虚拟机克隆

使用VMware从装有Redis的虚拟机中克隆两台相同的虚拟机。

步骤:

(1)选中需要装有Redis的虚拟机,右击选择管理——》克隆

(2)

redis配置主从复制的方式是 redis主从复制搭建_redis

(3)

redis配置主从复制的方式是 redis主从复制搭建_redis配置主从复制的方式是_02

(4)

redis配置主从复制的方式是 redis主从复制搭建_服务器_03

选择下边的单选按钮进行克隆,可以将源虚拟机的一些安装及配置都进行克隆。(5)

redis配置主从复制的方式是 redis主从复制搭建_Redis_04

至此,虚拟机克隆就完成了。

2. 主从复制配置

主服务器:192.168.1.101

从服务器:192.168.1.102;192.168.1.104

分别配置两台从服务器的redis.conf文件

redis.conf文件目录:

/usr/local/redis/etc/redis.conf(我这是从解压后的redis安装包目录中拷贝到该目录的)

(1)在redis.conf文件中找到 slaveof<masterip> <masterport> 或 replicaof <masterip> <masterport>(旧版本的是前者,新版本的是后者,具体哪一版开始不一样的没追查)

(2)<masterip> <masterport>替换为对应的主服务器IP和主服务器的端口号。如果主服务器(redis)有设置密码的话,则需要配置密码(通过文件中的 masterauth  配置)

这时候,配置就基本完成了。然后分别对三台redis进行启动。

启动命令:

./redis-server /usr/local/redis/etc/redis.conf

执行完成后查看redis是否启动成功。

查看命令:

[root@localhost etc]# ps -ef|grep redis
root       4247      1  0 14:06 ?        00:00:01 ./redis-server *:6379

这就说明成功了。也可以通过查看端口来判定是否启动成功。

[root@localhost etc]# netstat -lntp|grep 6379
tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN      4247/./redis-server
tcp6       0      0 :::6379                 :::*                    LISTEN      4247/./redis-server

然后通过

./redis-cli

命令进入redis里面。

验证:

在主服务器内,进行redis数据存储(set)后,在另外两台的redis服务器中,通过get命令可以获取到刚才存储的数据,但是从服务器里不能进行数据库写入操作,在从服务器内进行写入操作会报错。

主服务器内可以进行读写操作。

结果:

如果通过上边的验证后,从服务器不能通过get获取到主服务器存储的数据,则说明配置的有问题;能获取到主服务器存储的数据,证明主从复制配置成功。

3. 高可用配置

通过哨兵(sentinel)来进行Redis的高可用。

我这里用的其中一台从服务器进行的测试,可以单独使用一台或多台服务器进行sentinel配置高可用。

配置过程:

在redis(redis-5.0.5)的解压文件中,找到sentinel.conf

redis配置主从复制的方式是 redis主从复制搭建_服务器_05

然后可以将该文件复制到 /usr/local/redis/etc 下进行编辑,也可以在解压的目录下进行编辑。

(1)打开 sentinel.conf 找到以下:

sentinel monitor mymaster 127.0.0.1 6379 2
#主节点 名称 IP 端口号 选举次数
将IP、端口号更改为对应的主服务器IP、端口号。
选举次数——》而将这个主实例判断为失效至少需要2个 Sentinel进程的同意,只要同意Sentinel的数量不达标,自动failover就不会执行

(2)更改默认心跳检测时间,默认是30S

sentinel down-after-milliseconds mymaster 5000
(更改为5秒)

(3)

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

(4)启动哨兵模式

./redis-server /usr/local/redis/etc/sentinel.conf --sentinel &

在master服务器上,通过redis-cli进入redis服务器内部,通过 info 命令可以查看到当前服务器角色名称及从节点的配置

redis配置主从复制的方式是 redis主从复制搭建_IP_06

因为我这里没启动另外两台从服务器,所以没有显示另外两台从节点信息。 如果是在 slave 服务器内部查看,角色会变成 slave,并在下边会有主节点的IP类的信息。

验证:

当把主服务器给停止之后,sentinel会在从服务器之间进行选举master节点,选举之后,可以通过info命令查看节点角色是否变更。

(可以将窗口复制一个,实时观察sentinel服务的日志,日志里会显示选举那台从节点为主节点。)

结果:

如果其中一台从节点变更为了主节点,则说明sentinel配置成功,如果从节点都没有变为主节点,说明sentinel配置失败。

总结:每天一小步,成长一大步o(* ̄︶ ̄*)o