网站建设云南,网络营销试题,旅游门户网站建设意义,网站开发行业标准文章目录 redis主从复制主从复制的配置**安装Redis**配置主服务器配置从服务器验证主从效果 哨兵模式哨兵的工作机制哨兵模式的搭建启动哨兵 集群分布式集群的搭建 redis主从复制
Redis主从复制#xff08;Redis replication#xff09;是Redis提供的一种数据备份和故障转移… 文章目录 redis主从复制主从复制的配置**安装Redis**配置主服务器配置从服务器验证主从效果 哨兵模式哨兵的工作机制哨兵模式的搭建启动哨兵 集群分布式集群的搭建 redis主从复制
Redis主从复制Redis replication是Redis提供的一种数据备份和故障转移机制。通过主从复制可以将一个Redis服务器主节点的数据复制到一个或多个Redis服务器从节点。这样做的好处包括
数据冗余从节点作为主节点的数据副本提供了数据冗余可以在主节点发生故障时快速恢复数据。负载均衡可以将读操作分散到多个从节点上减轻主节点的压力提高整体性能。故障转移在主节点不可用时可以自动或手动将从节点升级为新的主节点继续提供服务。
主从复制的配置
Master节点192.168.20.10 Slave1节点192.168.20.20 Slave2节点192.168.20.30
安装Redis
systemctl stop firewalld.service
setenforce 0
mkdir /usr/local/redis/{conf,log,data}
cd /opt
yum install -y gcc gcc-c make
wget /opt http://download.redis.io/releases/redis-5.0.7.tar.gz
tar xfv redis-5.0.7.tar.gz
cd /opt/redis-5.0.7/
make
make install
cd utils/
./install_server.sh安装完成
配置主服务器
修改主服务器文件 /etc/redis/6379.conf
bind 0.0.0.0 #70行修改监听地址为0.0.0.0
daemonize yes #137行开启守护进程
logfile /var/log/redis_6379.log #172行指定日志文件目录
dir /var/lib/redis/6379 #264行指定工作目录
appendonly yes #700行开启AOF持久化功能一般只用修改bind 0.0.0.0和appendonly yes ,其他保持默认
/etc/init.d/redis_6379 restart重启服务
配置从服务器
修改从服务器配置文件 /etc/redis/6379.conf
bind 0.0.0.0 #70行修改监听地址为0.0.0.0
daemonize yes #137行开启守护进程
logfile /var/log/redis_6379.log #172行指定日志文件目录
dir /var/lib/redis/6379 #264行指定工作目录
replicaof 192.168.20.10 6379 #288行指定要同步的Master节点IP和端口
appendonly yes #700行开启AOF持久化功能验证主从效果 从服务器重启服务
/etc/init.d/redis_6379主服务器
tail -f /var/log/redis_6379.log 或者所有服务器使用
redis-cli info replication可以看到主从复制成功
哨兵模式
Redis哨兵Redis Sentinel是一种高可用解决方案用于监控Redis主服务器和从服务器并在主服务器不可用时自动将其中一个从服务器提升为新的主服务器。哨兵系统由一组哨兵进程组成它们相互通信以保持一致性并监视主服务器和从服务器的状态。
监控主从状态哨兵进程定期与主服务器和从服务器通信以确认它们是否正常运行。自动故障转移如果主服务器不可用哨兵会自动将一个从服务器提升为新的主服务器并通知其他从服务器连接到新的主服务器。配置提供者哨兵进程还提供配置信息例如主服务器地址、从服务器地址等以便客户端可以连接到新的主服务器。手动故障转移哨兵允许管理员手动指定一个从服务器作为新的主服务器。消息通知哨兵可以配置为在发生故障时通过各种方式如发送邮件、短信等通知管理员。数据持久化哨兵可以与Redis的持久化功能一起使用以实现数据的高可用性和持久性。 为了实现哨兵模式需要启动至少三个哨兵进程并确保它们能够相互通信。
哨兵的工作机制
在Redis哨兵模式中故障转移Failover是指当主服务器不可用时哨兵进程能够自动将一个从服务器提升为新的主服务器以保持Redis集群的可用性。以下是Redis哨兵模式中故障转移的步骤
监控哨兵进程不断地监控主服务器和从服务器的运行状态确保它们都处于正常工作状态。心跳检测哨兵之间以及哨兵与Redis服务器之间通过心跳检测来确认对方的存活状态。发现故障如果主服务器没有在指定的时间内响应心跳或者主服务器在指定时间内没有与从服务器同步数据哨兵会认为主服务器发生了故障。投票选举哨兵之间通过通信对故障的主服务器进行投票确定哪个从服务器将被提升为新的主服务器。故障转移一旦从服务器被选定哨兵会向其他从服务器发送命令将它们指向新的主服务器。配置更新客户端和其他哨兵会更新它们的配置以指向新的主服务器。同步数据新的主服务器开始与从服务器同步数据确保它们之间的数据一致性。完成故障转移当新的主服务器与所有从服务器都同步完成后故障转移完成Redis集群恢复正常工作。 在整个故障转移过程中Redis哨兵会确保数据的一致性和集群的可用性。故障转移通常是自动完成的但在某些情况下管理员也可以手动干预例如在主服务器发生故障时手动选择一个从服务器作为新的主服务器。 Redis哨兵的故障转移机制是一个高度可靠和自动化的过程它确保了Redis集群即使在主服务器发生故障的情况下也能继续提供服务从而保证了系统的稳定性和高可用性。
哨兵模式的搭建
搭建哨兵模式必须先搭建主从模式 1关闭Redis
/etc/init.d/redis_63792 修改哨兵模式配置文件
vim /opt/redis-5.0.7/sentinel.confprotected-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.20.10 6379 2 #84行修改设置完成
启动哨兵
cd /opt/redis-5.0.7/
redis-sentinel sentinel.conf 查看哨兵信息
redis-cli -p 26379 info Sentinel故障模拟
ps -ef | grep redis关闭主服务器的redis服务
/etc/init.d/redis_6379 stop成功
集群
Redis集群是一种分布式Redis实现它允许您将多个Redis实例组织在一起以提供跨多个节点的数据一致性和高可用性。Redis集群的设计允许它自动在多个Redis实例之间分配数据并且能够自动处理节点的故障。 以下是Redis集群的一些关键特点
自动故障转移当集群中的一个节点出现故障时Redis集群能够自动将故障节点的数据转移到其他健康的节点上以保持服务的高可用性。数据分区Redis集群将数据自动分布在不同的节点上每个节点负责一部分数据的存储。数据一致性Redis集群提供了强一致性的数据存储确保所有节点的数据都是最新的。自动节点添加和删除当有新的节点加入或离开集群时Redis集群能够自动调整数据分布以保持集群的可用性和一致性。负载均衡Redis集群能够自动将客户端请求分配到不同的节点上以实现负载均衡。数据分片Redis集群使用虚拟节点共16384个也称为哈希槽来将数据平均分布在多个节点上。每个虚拟节点负责一部分数据的存储。 分布式存储当一个节点丢失时会导致缺少部分哈希槽而无法正常工作。故障转移如果一个节点出现故障集群会自动将该节点的数据转移到其他健康的节点上。
分布式集群的搭建
redis集群一般来说需要六个节点但这里为了方便我使用三个虚拟机分别设置不同端口来区分结点每台虚拟机一主一从 主192.168.20.10:4320 192.168.20.20:4320 192.168.20.30:4320 从192.168.20.10:4321 192.168.20.20:4321 192.168.20.30:4321
在etc/redis目录下创建redis-cluster/redis4320和redis4321并且考入配置文件
cd /etc/redis/
mkdir -p redis-cluster/redis432{0..1}
cp /opt/redis-5.0.7/redis.conf /etc/redis/redis-cluster/redis4320
cp /opt/redis-5.0.7/redis.conf /etc/redis/redis-cluster/redis4321
cp /opt/redis-5.0.7/src/redis-cli /opt/redis-5.0.7/src/redis-server /etc/redis/redis-cluster/redis4320
cp /opt/redis-5.0.7/src/redis-cli /opt/redis-5.0.7/src/redis-server /etc/redis/redis-cluster/redis4321开启群集功能
修改各个Redis配置文件,以主为例
cd /etc/redis/redis-cluster/redis4320
vim redis.conf
#bind 127.0.0.1 #69行注释掉bind 项默认监听所有网卡
protected-mode no #88行修改关闭保护模式
port 4320 #92行修改redis监听端口
daemonize yes #136行开启守护进程以独立进程启动
cluster-enabled yes #832行取消注释开启群集功能
cluster-config-file nodes-6001.conf #840行取消注释群集名称文件设置
appendonly yes #700行修改开启AOF持久化在这里插入图片描述 分别进入那六个文件夹执行命令redis-server redis.conf 来启动redis节点 启动集群
redis-cli --cluster create 192.168.20.10:4320 192.168.20.20:4320 192.168.20.30:4320 192.168.20.10:4321 192.168.20.20:4321 192.168.20.30:4321 --cluster-replicas 1部署完成 测试 进入192.168.20.10 添加一对数据