雷州市规划建设局网站,制作网站软件下载,wordpress登录页面自定义,wordpress编辑器自动标签目录标题 环境目的实操一主多仆服务器和本地主机配置环境docker 环境配置 薪火相传反客为主 主从复制的流程主从复制的特性主从复制的缺点本篇结语 环境
我的环境介绍window环境VM虚拟机一台并安装centos7#xff0c;一台阿里云Linux服务器#xff0c;另一台Linux系统主机并… 目录标题 环境目的实操一主多仆服务器和本地主机配置环境docker 环境配置 薪火相传反客为主 主从复制的流程主从复制的特性主从复制的缺点本篇结语 环境
我的环境介绍window环境VM虚拟机一台并安装centos7一台阿里云Linux服务器另一台Linux系统主机并安装docker环境。
目的
配置一主三从redis集群验证主从复制的特性。 数据复制在主从复制中一个 Redis主节点Master会将其数据异步地复制给一个或多个从节点Slave。这意味着主节点上的数据更改将被自动传播到从节点从而保持从节点的数据与主节点的数据同步。 读写分离在主从复制中客户端可以向主节点发出写操作写入数据而读操作可以分发给主节点或从节点。这使得负载均衡更容易实现因为读操作可以分散到多个从节点上减轻了主节点的负担。 高可用性如果主节点失败可以选择一个从节点晋升为新的主节点以保持Redis集群的可用性。这是通过选举过程完成的其中从节点中的一个被选为新主节点。 数据冗余由于数据被复制到从节点即使主节点发生故障也可以从从节点恢复数据从而减少数据丢失的风险。 故障转移主节点故障后Redis 集群可以自动选择一个从节点作为新主节点以保持服务的连续性。这是通过 Sentinel或其他监控工具来实现的。 降低读操作对主节点的负载通过将读操作分发到从节点可以减少主节点上的读操作负载从而提高系统的性能和可伸缩性。 实时监控Redis 提供了监控机制您可以随时查看主从节点的同步状态、延迟等信息以确保数据一致性。 数据备份从节点可以用于生成 Redis您可以定期将从节点的数据进行快照snapshot并存储起来以便在需要时进行数据还原。
实操
一主多仆 服务器和本地主机配置环境
先下载自己需要的redis版本 然后在自己的Linux环境选定目录解压接着make编译找到redis.conf文件修改配置。主要修改的配置
bind在 Redis 的配置文件中bind 参数用于指定 Redis 服务器监听的网络接口IP 地址。默认情况下Redis 会监听所有可用的网络接口但您可以通过配置 bind 参数来限制 Redis 只监听特定的 IP 地址或主机名。这可以用于增强安全性限制 Redis 服务器仅接受来自指定 IP 地址的连接从而减少未经授权的访问风险。
以下是一些 bind 参数的常见用法和作用
bind 127.0.0.1此配置将使 Redis 服务器仅监听本地回环接口127.0.0.1从而只能通过本地访问 Redis 服务器不允许远程连接。这有助于增加 Redis 服务器的安全性因为只有本地应用可以连接到 Redis。
bind 0.0.0.0这是默认设置Redis 服务器将监听所有可用的网络接口允许来自任何 IP 地址的连接。这在内部网络环境中很常见但在公共网络上可能会增加安全风险。
bind IP地址您可以指定一个具体的 IP 地址使 Redis 服务器仅监听该 IP 地址上的连接。这对于在多个网络接口上运行 Redis 服务器的情况很有用可以选择一个特定的接口。
protected-mode它是用来控制 Redis 是否启用受保护模式的选项。受保护模式是为了增强 Redis 的安全性而设计的特别是当 Redis 服务器在公共网络上运行时。以下是 protected-mode 的作用和影响
防止未经授权访问当 protected-mode 设置为 “yes” 时Redis 服务器只接受来自本地回环接口127.0.0.1的连接请求即只有本地应用可以连接到 Redis 服务器。这可以防止未经授权的远程访问从而增强了 Redis 的安全性。
防止拒绝服务攻击受保护模式还可以防止潜在的拒绝服务DoS攻击因为只有本地应用可以连接到 Redis 服务器远程主机无法访问 Redis。
默认值protected-mode 的默认值为 “yes”这意味着默认情况下Redis 只接受本地连接。这有助于确保 Redis 在初始配置下更加安全。
如果您需要允许远程访问到 Redis您可以将 protected-mode 参数设置为 “no”但这需要非常谨慎因为这可能会增加潜在的安全风险。在生产环境中通常建议保持 protected-mode 为 “yes” 并使用其他方法来安全地允许远程访问如配置密码认证、使用防火墙规则等。
port 这个就是你的redis服务端口检查一下有没有被占用。不然启动不了reids服务。
daemonize 它用于控制 Redis 服务器是否以守护进程daemon的方式运行。Redis 是一个内存数据库通常情况下它在终端窗口中启动并以前台进程的方式运行方便在终端观察日志和输出。但在生产环境中通常希望 Redis 以守护进程的方式运行不依赖于终端会话以确保持久稳定的运行。
以下是 daemonize 参数的作用和取值
daemonize yes将 Redis 服务器以守护进程的方式运行。它会在后台运行不会占用终端窗口并且不依赖于终端会话。这通常是在生产环境中的推荐设置。
daemonize noRedis 服务器将以前台进程的方式运行通常用于开发和调试目的。在这种模式下Redis 会将日志和输出信息发送到终端窗口方便监视和调试。
这个要在docker中注意一下如果设置守护进程会启动不了
logfilelogfile配置redis日志地址。
RDB和AOF的那些配置大家默认就好这里先不详解不然篇幅太大requirepass用于设置 Redis 服务器的密码认证。当 requirepass 被设置为一个非空的密码时客户端连接到 Redis 服务器时必须提供正确的密码才能进行操作
replicaof用于设置 Redis 主从复制replication的关系。通过配置 replicaof您可以指定一个 Redis 服务器作为主服务器而当前的 Redis 服务器将成为该主服务器的从服务器从而建立主从复制关系。
主从复制是 Redis 的一种特性它允许一个 Redis 主服务器将其数据实时复制到一个或多个从服务器上以实现数据冗余、负载均衡、高可用性等目标。主服务器负责处理写操作而从服务器则负责复制主服务器的数据并处理读操作从而分担了主服务器的负载。
以下是一些关于 replicaof 参数的说明
replicaof 的格式是 replicaof 其中 和 分别是主服务器的 IP 地址和端口号。
在 Redis 服务器配置文件中配置 replicaof 后Redis 将尝试连接指定的主服务器并开始复制主服务器上的数据。
主服务器和从服务器之间的数据同步是实时的主服务器上的写操作将立即被复制到从服务器上。
在配置主从复制时通常情况下从服务器的数据将被清空然后从主服务器开始复制数据。如果需要保留从服务器上的数据可以使用快照RDB 文件来初始化从服务器。
masterauth
masterusermasterauth
masterauth 是用于配置主服务器密码认证的参数。当主服务器启用了密码认证通过设置 requirepass 参数时从服务器必须提供正确的密码才能连接到主服务器并进行数据同步。
masteruser
masteruser 是用于配置主服务器用户名认证的参数。当主服务器启用了用户名认证时从服务器必须提供正确的用户名和密码才能连接到主服务器并进行数据同步。
docker 环境配置
其他配置一样但是最好做好部分文件的映射这样有利于查看日志和修改配置我给出一个实例
docker run --name redis01 -id -p 6380:6380 -v /etc/node02:/usr/local/etc/redis -v /usr/node02/data:/data redis:latest redis-server /usr/local/etc/redis/redis.conf小提示 新版的docker redis容器中好像没有redis.conf文件了。大家可以映射进去。
这个几个是经常会用到的命令
info replication 显示集群或者节点信息
replicaof 主从复制
salveof 改换门庭
replica no 自立为王从主节点查看集群信息可以观察到这里有一个主节点三个从节点。
薪火相传 大概就是这样配置也很多可以在开始的时候就在配置文件中配置也可以使用命令
salveof 改换门庭反客为主
这个更简单就是把salve节点变成master节点可以使用命令
replica no 自立为王主从复制的流程
连接建立 从服务器通过发送 SYNC 命令向主服务器请求建立连接。主服务器接受请求后开始准备复制数据。快照 主服务器将当前的数据集快照保存到一个 RDB 文件中。这个 RDB 文件包含了主服务器的完整数据集。缓冲区同步 主服务器将 RDB 文件中的数据块发送给从服务器。从服务器接收到数据后存储在内存中的缓冲区开始更新。redis也会通过ping检查主从是否保持联系。当主服务器接收到来自从服务器的 PING 命令后它会回复 PONG表示它仍然处于活跃状态。这有助于从服务器检测到主服务器是否仍然在线。如果主服务器不再响应 PING从服务器可能会认为主服务器已经宕机并采取适当的措施例如触发故障转移操作。命令传播 主服务器将执行在 RDB 文件生成期间的所有写命令记录到一个缓冲区中并将这些命令发送给从服务器。从服务器在接收到命令后执行这些命令以更新自己的数据集。增量复制 一旦数据同步完成主服务器将进入增量复制模式。在这个模式下主服务器将实时将写命令传播给从服务器以保持数据的一致性。
在 Redis 复制中数据是通过异步复制的因此在主从服务器之间可能会有一定程度的延迟。这意味着从服务器的数据不一定与主服务器的数据完全同步。如果需要更高的数据一致性可以使用 Redis 集群。
我用我的window版本的redis连接master节点时可以直观的观察到上述的几个步骤。 虽然这个连接失败了但是也可以看到上述过程的影子。
主从复制的特性 数据冗余和高可用性主从复制提供了数据冗余即从服务器复制了主服务器的数据。如果主服务器故障可以快速切换到从服务器从而提高了系统的可用性。 先停掉主机 从机数据正常保留 读写分离主服务器负责写入操作从服务器负责读取操作。这允许主服务器专注于写入性能而从服务器可以分担读取请求提高了系统的吞吐量。 在主机先写入 在从机写入 在主机查 在从机查
热备份从服务器可以用于创建热备份而不影响主服务器的性能。这使得可以在运行中进行备份操作而不需要停机。 我没有启用AOF目前的备份只有RDB这个时从节点的热备份文件。 总是搞混的是主从复制不具有负载均衡的特性 故障恢复如果主服务器出现故障可以快速将一个从服务器升级为新的主服务器从而恢复服务。 把目前的master节点停掉 把其中一台自立为王 给它设置一个从机 查看这个主机的结果
增加数据中心可以将从服务器部署在不同的数据中心实现数据的跨数据中心复制提高数据的可用性和灾难恢复能力。
主从复制的缺点
复杂性配置和维护主从复制环境可能会增加系统的复杂性需要考虑数据一致性和故障转移等问题。
网络带宽复制过程需要占用网络带宽特别是在复制大数据集时可能会对网络产生较大压力。
延迟从服务器的数据复制通常存在一定的延迟这意味着读取从服务器的数据可能不是实时的。
数据一致性在主从复制中可能存在数据不一致的情况特别是在网络分区或复制延迟的情况下。
本篇结语
为什么有主从复制呢我觉得他是后面学习哨兵集群的基础。只是单纯的主从复制显然是达不到生产的要求的。这些缺点都是致命的。下一篇我们记录哨兵的实操笔记。进入更好玩的世界。