redis高可用(主从复制)

熟练掌握redis需要从 reids如何操作5种基本数据类型,redis如何集群,reids主从复制,redis哨兵机制redis持久化

reids主从复制 的作用可以:实现数据备份,读写分离,集群,高可用,宕机容错机制

今天记录一下redis如何完成主从复制

主从复制的概念:

1、redis的复制功能是支持多个数据库之间的数据同步。一类是主数据库(master)一类是从数据库(slave),主数据库可以进行读写操作,当发生写操作的时候自动将数据同步到从数据库,而从数据库一般是只读的,并接收主数据库同步过来的数据,一个主数据库可以有多个从数据库,而一个从数据库只能有一个主数据库。

2、通过redis的复制功能可以很好的实现数据库的读写分离,提高服务器的负载能力。主数据库主要进行写操作,而从数据库负责读操作。

注意:redis只支持一个主服务器,nginx支持多主多备

主从复制的执行过程实时性:

1 当一个从数据启动后,会向主数据库发送sync命令

2:主数据库接收到sync命令后会开始在后台保存快照(执行rdb操作),并将保存期间接收到的命令缓存起来

3:当快照完成后,redis会将快照文件和所有缓存的命令发送给从数据库。

4:从数据库收到后,会载入快照文件并执行收到的缓存的命令。

具体实现 主从复制的步骤:

1.克隆两个虚拟机作为从机


修改每个虚拟机的mac地址.

2.使用xshell工具连接从服务器:打开位于

/usr/local/redis/etc 的redis.conf 文件

找到 slaveof  和masterauth 配置文件内容

3.添加主机ip 端口,和密码:

4.分别启动(主从的) redis 服务

cd /usr/local/redis/bin ./redis-server /usr/local/redis/etc/redis.conf  

5. 分别连接redis客户端 ./redis-cli -h 127.0.0.1 -p 6379 -a "redis123"

6.可以通过info命令 查看主从关系是否建立:

打开主服务器:

 打开从服务器的info:

 

 7 测试,在主服务器中存值,在从服务器中是否能取到,如果能取到 则完成配置:(从服务器是无法写入数据的)

 

8 重要的事情说三次,一定要记得 关闭防火墙,一定要记得 关闭防火墙,一定要记得 关闭防火墙(每个版本关闭防火墙用到的方式不一样),不然 即使建立好了关系 从服务器也无法从主服务器里面获取数据

此处命令可参考:https://blog.csdn.net/zzqtty/article/details/85246209

#安装iptables 
yum install iptables-services

一、iptables防火墙

1、基本操作

# 查看防火墙状态

service iptables status  

# 停止防火墙

service iptables stop  

# 启动防火墙

service iptables start  

# 重启防火墙

service iptables restart  

# 永久关闭防火墙

chkconfig iptables off  

# 永久关闭后重启

chkconfig iptables on  

2、开启80端口

vim /etc/sysconfig/iptables
# 加入如下代码
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
保存退出后重启防火墙

service iptables restart
二、firewall防火墙
1、查看firewall服务状态

systemctl status firewalld

出现Active: active (running)切高亮显示则表示是启动状态。

出现 Active: inactive (dead)灰色表示停止,看单词也行。
2、查看firewall的状态

firewall-cmd --state
3、开启、重启、关闭、firewalld.service服务

# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop
4、查看防火墙规则

firewall-cmd --list-all
5、查询、开放、关闭端口

# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放80端口
firewall-cmd --permanent --add-port=80/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload

原文地址:https://www.cnblogs.com/920913cheng/p/10413009.html