Redis配置主从模式
Redis主从模式是什么?
不管任何程序,只运行一个实例都是不可靠的,一旦因为网络原因导致所在机器不可达,或者所在服务器挂掉,那么这个程序将不能对外提供服务了,Redis也是一样的。同时,将数据完全存储在单个redis中也会存在数据备份和数据量较大造成性能降低的问题。主从模式很好的解决了数据备份问题,并且由于主从服务数据几乎是一致的,因而可以将写入数据的命令发送给主机执行,而读取数据的命令发送给不同的从机执行,从而达到读写分离的目的。
1、创建文件夹并在文件夹里面复制两个redis.conf配置文件。
这两个配置文件是复制redis.conf,并修改名字7000和7001是我随意添加的,可以修改成任意名字,建议和开启的端口号一样的名字。
mkdir myredis
cp redis.conf redis7000.conf
cp redis7000.conf redis7001.conf
mv redis7000.conf /usr/local/bin/myredis/
mv redis7001.conf /usr/local/bin/myredis/
2、编辑配置文件。
vim redis7000.conf
vim redis70001.conf
2、1将port端口改成7000
2、2关闭AOF配置,将appendonly修改成no
2、3修改dump.rdb
2、4同理,修改redis7001.conf
此处省略过程。
3、查看info replication
通过查询,发现两台都是master。
3、1让7001端口设置成子服务器。
通过命令仍7001成为7000端口的子服务器。
slaveof 127.0.0.1 7000
设置后再次查询,发现已经修改成功。可以链接到主服务器了。
3、2测试获取主服务器的数据库内容。
那么如果子服务器修改主机的内容,会修改成功吗?接着测试。
经过测试发现,子服务器不能修改主机的数据库,提示你没有写入权限,只有读取权限。
3、3测试同网段内其他Linux链接主服务器。
这里要求两台虚拟机所使用的网络必须为桥接网络,NAT网络因为网段不同,是无法链接到另一台服务器。
3、3、1开启防火墙端口
开放7000端口
firewall-cmd --zone=public --add-port=7000/tcp --permanent
3、3、2重启防火墙
firewall-cmd --reload
看到success表示添加成功。
3、3、3验证7000是否开放成功
firewall-cmd --zone=public --query-port=7000/tcp
看到yes代表放行成功。
3、3、4设置同网段内另一台服务器成子服务器。
slaveof IP地址 端口号
IP地址:是主服务器的ip地址。
端口号:是主服务器的端口号。
设置完成后,查看已经链接成功。
3、3、4测试能否获取主服务器中的数据
经过测试,数据可以拿得到。
那么又有个新问题,如果主服务器挂掉,子z服务器是否还可以继续获得主服务器的数据库内容呢?接着测试。
3、3、5 主服务器挂掉子服务器是否还可以获得主服务器中的数据
经过测试,主服务器挂掉了,子服务器还是可以获取到主服务器的内容。
那么又来了一个问题,主服务器挂掉了,子服务器怎么上位还是说等待主服务器归来?