网站网页打不开怎么办,上海专业网站建设报,python搭建网页,视频网站如何做盗链redis的高可用 在Redis中#xff0c;实现高可用的技术主要包括持久化、主从复制、哨兵和集群#xff0c;下面分别说明它们的作用#xff0c;以及解决了什么样的问题。
持久化#xff1a; 持久化是最简单的高可用方法#xff08;有时甚至不被归为高可用的手段#xff09;… redis的高可用 在Redis中实现高可用的技术主要包括持久化、主从复制、哨兵和集群下面分别说明它们的作用以及解决了什么样的问题。
持久化 持久化是最简单的高可用方法有时甚至不被归为高可用的手段主要作用是数据备份即将数据存储在硬盘保证数据不会因进程退出而丢失。主从复制 主从复制是高可用Redis的基础哨兵和集群都是在主从复制基础上实现高可用的。主从复制主要实现了数据的多机备份和同步以及对于读操作的负载均衡和简单的故障恢复。缺陷故障恢复无法自动化写操作无法负载均衡存储能力受到单机的限制。哨兵 在主从复制的基础上哨兵实现了自动化的故障恢复。主挂了找一个从成为新的主哨兵节点进行监控缺陷写操作无法负载均衡存储能力受到单机的限制。集群 通过集群Redis解决了写操作无法负载均衡以及存储能力受到单机限制的问题实现了较为完善的高可用方案。6台起步成双成对3主3从 redis的主从复制 主从复制是redis实现高可用的基础哨兵模式和集群都是在主从复制的基础之上实现高可用。
主从复制实现数据的多机备份以及读写分离主服务器负责写从服务器只能读。
缺陷故障无法自动恢复需要人工干预写操作的负载均衡。 主从复制的工作原理
1.主节点master 从节点slave组成组成数据复制是单向的只能从主节点到从节点。
2.工作机制 redis 一主二从的工作原理 主从ipmaster20.0.0.170slave120.0.0.180slave220.0.0.190 实验具体部署
修改master节点的配置文件
systemctl stop firewalld
setenforce 0
修vim /etc/redis/6379.conf bind 0.0.0.0 #70行,修改监听地址为0.0.0.0生产环境中尤其是多网卡最好填写物理网卡的IPdaemonize yes #137行开启守护进程后台启动 logfile /var/log/redis_6379.log #172行指定日志文件存放目录dir /var/lib/redis/6379 #264行指定工作目录appendonly yes #700行开启AOF持久化功能
/etc/init.d/redis_6379 restart #重启redis服务line70 ---所有网段都能通信 line137----开启进程守护 line264----指定工作目录 line700-----开启aof持久化 修改slave节点配置文件
#修改slave1的配置文件
vim /etc/redis/6379.conf bind 0.0.0.0 #70行,修改监听地址为0.0.0.0生产环境中需要填写物理网卡的IPdaemonize yes #137行,开启守护进程后台启动logfile /var/log/redis_6379.log #172行,指定日志文件目录dir /var/lib/redis/6379 #264行,指定工作目录replicaof 192.168.73.105 6379 #288行,指定要同步的Master节点的IP和端口appendonly yes #700行,修改为yes开启AOF持久化功能
#将配置文件传给slave2
scp /etc/redis/6379.conf 20.0.0.190:/etc/redis/
/etc/init.d/redis_6379 restart #重启redis
netstat -natp | grep redis #查看主从服务器是否已建立连接
line288---指定同步的master的IP和端口 line700 分别重启服务后进日志查看 查看策略
redis-cli info replication 读写测试
主服务器创建并查看 从服务器可以查但是从服务器有只读限制所以无法写入 哨兵模式 主从切换技术的方法是当服务器宕机后需要手动一台从机切换为主机这需要人工干预不仅费时费力而且还会造成一段时间内服务不可用。为了解决主从复制的缺点就有了哨兵机制。
主从复制即基础之上实现主节点故障的自动切换
哨兵的核心功能在主从复制的基础上哨兵引入了主节点的自动故障转移。 哨兵模式原理
哨兵分布式系统部署在每一个redis节点用于在主从结构之间对每台redis的服务进行监控。 主节点出现故障时从节点通过投票的方式选择一个新的master。
哨兵模式需要至少三个节点 实验部署
主从IP哨兵点master20.0.0.170Sentinel 1slave120.0.0.180Sentinel 2slave220.0.0.190Sentinel 3
修改哨兵节点的配置文件
vim /opt/redis-5.0.7/sentinel.conf
......
protected-mode no #17行取消注释关闭保护模式
port 26379 #21行Redis哨兵默认的监听端口
daemonize yes #26行指定sentinel为后台启动
logfile /var/log/sentinel.log #36行指定日志文件存放路径
dir /var/lib/redis/6379 #65行指定数据库存放路径
sentinel monitor mymaster 192.168.73.105 6379 2 #84行修改
#指定该哨兵节点监控192.168.73.105:6379这个主节点该主节点的名称是mymaster。
#最后的2的含义与主节点的故障判定有关至少需要2个哨兵节点同意才能判定主节点故障并进行故障转移
sentinel down-after-milliseconds mymaster 3000 #113行判定服务器down掉的时间周期默认30000毫秒30秒
sentinel failover-timeout mymaster 180000 #146行同一个sentinel对同一个master两次failover之间的间隔时间180秒
#传给两外2个哨兵节点
scp /opt/redis-5.0.7/sentinel.conf 20.0.0.180:/opt/redis-5.0.7/
scp /opt/redis-5.0.7/sentinel.conf 20.0.0.190:/opt/redis-5.0.7/
line17 line 21 哨兵模式的默认端口--26379 line 26 哨兵模式是否后台运行------yes line 36 日志位置 line 65 工作目录和redis放一起 line 84 指定初始的主服务器, ip指向初始的主服务器
**2哨兵模式中至少需要两台服务器认为主已经下线才会进行主从切换 先启动主再启动从节点 redis-sentinel sentinel.conf //在redis源码包下面启动
redis-cli -p 26379 info sentinel 查看哨兵模式
tail -f /var/log/sentinel.log 故障模拟
ps -elf | grep redis
kill -9 15347 杀死进程和关闭服务都可以关闭服务要等一分钟左右然后两个从开启日志等待查看 由此看出20.0.0.190变成了新主
下面进行读写测试 由此看来
旧主变成从后会在配置文件自动加入这行配置文件让旧主无法写入 旧主的配置文件也被自动修改 实验结束