1.redis备份
有两种方式:rdb和aof
rdb:全量备份 时效性较差 数据丢失可能性大 恢复快 压缩率高(文件小)
aof:增量备份 时效性高 数据 丢失可能性小 恢复慢 未压缩(文件大,BGREWRITEAOF可能稍微 减小一点体积)
官方建议两种方式都开启。
默认rdb是开启的
aof默认关闭,需要打开的话,编辑redis.conf大概593行左右,把appendonly no改为appendonly yes
2.主从复制
三台服务器规划:
192.168.1.2 --master 6379
192.168.1.3 --slavesl1 6379
192.168.1.4 --slavesl2 6379
mater不用配置,
打开slave1的redis.conf 大概256行左右 # slaveof <masterip> <masterport> 把注释去掉
修改为:slaveof 192.168.1.2 6379
slave2和slave1一样修改redis.conf配置文件。
然后启动三台服务器,查看:
使用redis-cli连接master 输入命令 info replication
# Replication
role:master
connected_slaves:2
slave0:ip=192.168.1.3,port=6379,state=online,offset=3333,lag=1
slave1:ip=192.168.1.4,port=6379,state=online,offset=3333,lag=0
master_repl_offset:3333
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:3332
使用redis-cli连接slave 输入命令 info replication
role:slave
master_host:192.168.1.2
master_port:6379
master_link_status:up
master_last_io_seconds_ago:0
master_sync_in_progress:0
slave_repl_offset:3319
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
就这么简单,主从复制就完成了。
下面说说主从复制的工作方式:
参考redis官方:http://redis.io/topics/replication
How Redis replication works
If you set up a slave, upon connection it sends a PSYNC command.
If this is a reconnection and the master has enough backlog, only the difference (what the slave missed) is sent. Otherwise what is called a full resynchronization is triggered.
When a full resynchronization is triggered, the master starts a background saving process in order to produce an RDB file. At the same time it starts to buffer all new write commands received from the clients. When the background saving is complete, the master transfers the database file to the slave, which saves it on disk, and then loads it into memory. The master will then send all buffered commands to the slave. This is done as a stream of commands and is in the same format of the Redis protocol itself.
You can try it yourself via telnet. Connect to the Redis port while the server is doing some work and issue the SYNCcommand. You'll see a bulk transfer and then every command received by the master will be re-issued in the telnet session.
Slaves are able to automatically reconnect when the master-slave link goes down for some reason. If the master receives multiple concurrent slave synchronization requests, it performs a single background save in order to serve all of them.
主要就是说:redis master会启动一个后台进程把内存数据写入到rdb文件中,写rdb文件这段时间的所有新命令会被缓存起来,不会执行,当rdb写好以后,同步到slave节点,同步完成以后,再把所有缓存的命令发送到slave去执行。
相关推荐
Redis 主从复制技术原理 概述 Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的...Redis 主从复制技术可以解决单一节点的问题,实现数据的冗余备份和高可用,提高系统的整体性能和可靠性。
Redis 主从复制是一种数据冗余机制,主要用于实现读写分离、负载均衡以及数据备份等目的。通过搭建主从复制集群,可以有效避免单点故障问题,并且能够满足读多写少的应用场景需求。 **主从复制的好处包括:** 1. **...
Redis主从复制模式是一种数据冗余容灾机制,通过在多台服务器上部署Redis实例,实现数据的实时同步和备份。当主服务器宕机时,备服务器可以自动切换为主服务器,提供高可用性的Redis服务。 在Redis主从复制模式中,...
以上就是Redis在Linux环境下的安装、主从复制配置以及自动故障切换的详细过程。请根据实际情况调整配置文件中的参数,确保系统安全稳定运行。在实际应用中,还应考虑备份策略、安全性设置以及性能优化等细节。
2. 数据冗余:主从复制提供了数据的热备份,增加了数据安全性。 3. 负载均衡:通过读写分离,主节点处理写操作,从节点处理读操作,分散服务器压力。 4. 高可用基石:主从复制是Redis Sentinel和Cluster等高级架构的...
Redis的主从复制还支持一个主节点对应多个从节点,以及从节点间的级联复制,允许灵活地组织业务缓存数据的传播。此外,replication backlog的设计是为了在不稳定的网络环境下,减少全量同步的频率,降低主节点的...
Redis主从复制的主要目的是分担读写压力,通过复制数据,可以实现数据的备份和高可用性。Redis的主从结构可以是一主多从或级联结构,即一个主节点可以有多个从节点,而从节点也可以作为其他从节点的主节点。主从复制...
本文将详细介绍Linux环境下Redis的安装步骤、配置过程以及主从复制的配置方法。 ### Redis简介 Redis是一个开源的使用内存存储的高性能键值对数据库,它支持丰富的数据类型,包括字符串(strings)、散列(hashes...
总的来说,Redis的高可用性是通过主从复制来实现数据备份和读取负载分散,通过哨兵模式进行故障检测和自动故障转移,以及通过漂移VIP来实现服务的无缝切换。掌握这些知识点对于确保生产环境中的Redis稳定运行和数据...
主从复制是 Redis 提供的一种数据备份和故障恢复机制。在该模式下,一个 Redis 实例作为主节点(Master),负责处理写操作并同步数据到一个或多个从节点(Slave)。当主节点出现故障时,从节点可以接管服务,确保...
1. **主从复制原理**:当主节点接收到写操作时,会将操作同步到从节点。这样,即使主节点发生故障,也可以快速切换到从节点继续提供服务。 2. **配置步骤**: - 在主节点上编辑 `redis.conf` 文件,确保 `bind` ...
本篇文章将详细介绍如何通过主从复制和Keepalived来实现Redis的HA部署。 一、Redis主从复制 Redis主从复制是其HA的基础,它允许一个Redis实例(主节点)的数据被多个实例(从节点)实时同步。当主节点出现问题时,...
在Redis集群中,通过主从复制可以实现数据的备份和负载均衡。主服务器负责处理写请求,而从服务器则同步主服务器的数据并处理读请求。这种方式能提高系统的读写能力,并且在主服务器故障时,可以从健康的从服务器中...
主从复制实现了数据的**热备份**,是持久化之外的一种数据冗余方式。 当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余 在主从复制的基础上,配合读写分离,可以由主节点...
本文将详细介绍如何在Linux环境中安装Redis 3.2版本以及配置主从复制。 首先,我们需要下载Redis的源码包。你可以访问Redis的官方网站下载页面(http://redis.io/download)获取最新版本,或者直接下载指定版本如...
3. **主从复制**:主从服务器的配置主要涉及到主服务器的 `slaveof` 参数。在从服务器的配置文件中,需要添加 `slaveof <master-ip> <master-port>`,指定主服务器的 IP 地址和端口。主服务器无需特别配置,默认就...
本篇文章将探讨如何使用Java的Jedis库连接Redis的不同部署模式:单机、主从复制和哨兵(Sentinel)系统。 首先,我们从单机模式开始。在单机模式下,Redis服务器独立运行,没有备份或故障转移机制。使用Jedis连接...
主从复制提供了数据备份和读写分离,哨兵系统则确保了在主节点故障时能自动进行故障恢复,两者结合使用,可以显著提升Redis集群的稳定性和可靠性。在实际应用中,应根据业务需求和规模来设计合理的主从和哨兵配置,...