当数据量变得庞大的时候,读写分离还是很有必要的。同时避免一个redis服务宕机,导致应用宕机的情况,我们启用sentinel(哨兵)服务,实现主从切换的功能。
redis提供了一个master,多个slave的服务.
准备三个redis服务,依次命名文件夹子master,slave1,slave2.这里为在测试机上,不干扰原来的redis服务,我们master使用6000端口。
配置文件(redis.conf或者redis.windows.conf)
master配置修改端口:
port 6000
requirepass 123456
slave1修改配置:
port 6001
slaveof 127.0.0.1 6000
masterauth 123456
requirepass 123456
slave2修改配置:
port 6002
slaveof 127.0.0.1 6000
masterauth 123456
requirepass 123456
requirepass是认证密码,应该之后要作主从切换,所以建议所有的密码都一致, masterauth是从机对主机验证时,所需的密码。(即主机的requirepass)
启动主机
redis-server redis.windows.conf
启动从机:
redis-server redis.windows1.conf
redis-server redis.windows2.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:
[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:
[root@localhost slave2]# redis-cli -p 6001
127.0.0.1:6001> auth 123456
OK
127.0.0.1:6001> get test
"chenqm"
slave2:
[root@localhost slave2]# redis-cli -p 6002
127.0.0.1:6002> auth 123456
OK
127.0.0.1:6002> get test
"chenqm"
可以看到主机执行写命令,从机能同步主机的值,主从复制,读写分离就实现了。
su先生给你加油噢!!!