一、前期准备工作
1. 需要两台银河麒麟V10 SP2服务器,配置如下
服务器名 | IP地址 | 操作系统 | 应用软件 |
redis1 | 192.168.174.128 | Kylin Linux Advanced Server release V10 (SP2) | redis |
redis2 | 192.168.174.181 | Kylin Linux Advanced Server release V10 (SP2) | redis |
二、主从服务器上安装部署redis
1. 主服务器上部署redis
cd /usr/local
wget https://download.redis.io/releases/redis-6.2.7.tar.gz
tar -xvzf redis-6.2.7.tar.gz
cd /usr/local/redis-6.2.7
make && make install PREFIX=/usr/local/redis-6.2.7
/usr/local/redis-6.2.7/bin/redis-server /usr/local/redis-6.2.7/redis.conf &
这样主服务器1上单机版的redis就安装好了。
2. 从服务器上部署redis
cd /usr/local
wget https://download.redis.io/releases/redis-6.2.7.tar.gz
tar -xvzf redis-6.2.7.tar.gz
cd /usr/local/redis-6.2.7
make && make install PREFIX=/usr/local/redis-6.2.7
/usr/local/redis-6.2.7/bin/redis-server /usr/local/redis-6.2.7/redis.conf &
这样从服务器2上单机版的redis就安装好了。
3. 关闭主从redis单机服务
4. 修改主服务器上redis.conf和sentinel.conf配置文件
4.1 修改主服务器的redis.conf配置文件
[root@redis1 ~]# vim /usr/local/redis-6.2.7/redis.conf
bind 192.168.174.128
daemonize yes
logfile "/var/log/redis.log"
masterauth "123456" # 其它redis视我为master时的验证密码
requirepass "123456" # 本机redis的登录密码
maxmemory 100mb
4.2 修改主服务器的sentinel.conf哨兵配置文件
[root@redis1 ~]# vim /usr/local/redis-6.2.7/sentinel.conf
bind 192.168.174.128
sentinel monitor mymaster 192.168.174.128 6379 2
sentinel auth-pass mymaster 123456
logfile "/var/log/sentinel.log"
daemonize yes
5. 修改从服务器上redis.conf和sentinel.conf配置文件
5.1 修改从服务器的redis.conf配置文件
[root@redis2 ~]# vim /usr/local/redis-6.2.7/redis.conf
bind 192.168.174.181
daemonize yes
logfile "/var/log/redis.log"
masterauth "123456" # 其它redis视我为master时的验证密码
requirepass "123456" # 本机redis的登录密码
maxmemory 100mb
slaveof 192.168.174.128 6379
5.2 修改从服务器的sentinel.conf哨兵配置文件
[root@redis2 ~]# vim /usr/local/redis-6.2.7/sentinel.conf
bind 192.168.174.181
sentinel monitor mymaster 192.168.174.128 6379 2
sentinel auth-pass mymaster 123456
logfile "/var/log/sentinel.log"
daemonize yes
6. 测试主从数据同步
首先启动主从redis服务,在主从服务器上执行
/usr/local/redis-6.2.7/bin/redis-server /usr/local/redis-6.2.7/redis.conf
6.1 查看主服务器上状态,并在主redis上设置变量,并赋值。
6.2 查看从服务器状态,在从服务器上获取变量值,发现和主服务一致,说明主从已同步
7. 测试主从服务器切换
在主从服务器上,分别启动哨兵服务
/usr/local/redis-6.2.7/bin/redis-sentinel /usr/local/redis-6.2.7/sentinel.conf
7.1 关闭主服务器上的redis服务
7.2 登录从服务器上查看状态,看是否从服务器变为主服务器
7.3 然后再启动原来主服务器上的redis服务,查看状态,发现原来的主服务器变为从服务器,而且可以自动同步新master服务器上redis数据,说明主从已经切换。
总结如下:
1. 通过设置从服务器配置文件:slaveof 192.168.174.128 6379 ,实现主从数据同步
2. 通过设定哨兵模式:实现主从服务器自动切换,而且重新启动宕掉的服务器,数据可以同步