redis的主从复制 读写分离 /哨兵 主从切换 配置

               

        当数据量变得庞大的时候,读写分离还是很有必要的。同时避免一个redis服务宕机,导致应用宕机的情况,我们启用sentinel(哨兵)服务,实现主从切换的功能。redis提供了一个master,多个slave的服务。

         准备三个redis服务,依次命名文件夹子master,slave1,slave2.这里为在测试机上,不干扰原来的redis服务,我们master使用6000端口。

配置文件(redis.conf):

master配置修改端口:

    port 6000    requirepass 123456

slave1修改配置:

1
2
3
4
5
6
7
port 6001
 
slaveof 127.0.0.1 6000
 
masterauth 123456
 
requirepass 123456

slave2修改配置:  

1
2
3
4
5
6
7
port 6002
 
slaveof 127.0.0.1 6000
 
masterauth 123456
 
requirepass 123456

      requirepass:是认证密码,应该之后要作主从切换,所以建议所有的密码都一致。masterauth是从机对主机验证时,所需的密码(即主机的requirepass)。

启动主机:

1
redis-server redis.conf  

启动从机:

   redis-server redis1.conf   redis-server redis2.conf

产看启动进程,输入:

ps -ef |grep redis
root      6617     1  0 18:34 ?        00:00:01 redis-server *:6000    root      6647     1  0 18:43 ?        00:00:00 redis-server *:6001     root      6653     1  0 18:43 ?        00:00:00 redis-server *:6002     root      6658  6570  0 18:43 pts/0    00:00:00 grep redis

可以看到主,从机的redis已经相应启动。

我们来验证下主从复制:

master:

1
2
3
4
5
[root@localhost master] # redis-cli -p 6000
127.0.0.1:6000> auth 123456
OK
127.0.0.1:6000>  set  test  chenqm
OK

slave1:

1
2
3
4
5
[root@localhost slave2] # redis-cli -p 6001
127.0.0.1:6001> auth 123456
OK
127.0.0.1:6001> get  test
"chenqm"

slave2:

1
2
3
4
5
[root@localhost slave2] # redis-cli -p 6002
127.0.0.1:6002> auth 123456
OK
127.0.0.1:6002> get  test
"chenqm"

可以看到主机执行写命令,从机能同步主机的值,主从复制,读写分离就实现了。

但是万一主机挂了怎么办,这是个麻烦事情,所以redis提供了一个sentinel(哨兵),以此来实现主从切换的功能,类似与zookeeper。

Redis哨兵(sentinel)实现主从切换:

我们配置两个sentinel进程:

(1)

       vi sentinel.conf 
1
2
3
4
5
6
port 26379
 
 

猜你喜欢

转载自blog.csdn.net/qq_44894516/article/details/89308698