主从复制
就是读写分离的意思,从主master数据库中添加,从slave数据库中读取内容,主的删除,从的就会自动删除(主数据库自动会向从数据库复制内容,也就是自动同步)
准备工作
需要准备3个redis数据库,分别配置redis.conf
1、主 数据库redis
1、解释:master:
1、port 端口为6000
2、requirepass密码设置为123456
2、从数据库库redis分别为
解释:
1、masterauth是从机对主机验证时,所需的密码。(即主机的requirepass)
2、slaveof 表示主的地址和端口
1、slave1:
2、slave2:
3、启动这三个redis
1、启动redis,根据配置文件redis.conf
redis-server ../redis.conf
2、连接这个6000的主服务器redis
redis-cli -p 6000 表示连接6000的端口的redis
密码认证
3、其他的类似启动
1、从数据库redis,启动发现加载了master
4、代码模拟测试
测试内容,给主数据库master 写入数据,但是从从数据库slave中读取
2、测试结果,成功
3、添加哨兵,防止主master挂掉之后不能够实现主从复制,
注意事项: sentinel monitor 有系统默认的,需要先删掉,再添加,否则就重复了
1、主master redis中编辑sentinel.conf
(在redis1中也编辑一个sentinel.conf,如2中所示,也就是说当master挂掉,之后,slave充当master)
2、从slave redis1中,编辑sentinel.conf
3、分别启动这两个sentinel.conf
redis-server ../sentinel.conf --sentinel
4、查看redis进程,哈哈,小伙伴们都在了
5、现在杀死6000 master的进程,观察master sentinel.conf中日志
1、会发现有个switch ,也就是说 master切换了,redis1变成了master
2、现在启动maser 6000,会发现,6001现在编程了master,牛逼了,居然还能修改配置文件, 因为sentinel在切换master的时候,把对应的sentinel.conf和redis.conf文件的配置修改。包括redis2,redis1,redis,全部都改,真牛
4、文件内容