Redis 主从同步配置

主从功能:

为了防止 Redis 磁盘损坏,导致数据丢失,Redis 提供了复制功能,将一个主数据库的数据自动同步到从数据库,防止数据丢失。
同时还可以配置一主多从来分担主压力,主只接受写的操作,将读的操作给从来实现;其中从库也可以接受其它从库的同步请求。
如果主、从因为网络原因出现连接断开,网络正常后从可以自动连接主,连接成功后主会将完整的数据同步一次给从,保证数据一致性。

主从原理:

1、从数据库启动后,向主数据库发送 SYNC 命令
2、主数据库收到 SYNC 命令后开始保存快照,在此期间所有发给主数据库的命令都被缓存起来
3、快照保存完后,主数据库把快照和缓存的命令一起发给从数据库
4、从数据库保存主数据发来的快照文件,并依次执行主数据库发来的缓存命令

在同步过程中,主、从数据库都不会阻塞:

-----> 主库可以继续接受客户端提交的查询或修改请求;
-----> 从库默认使用同步之前的数据继续响应客户端发来的命令

一、配置 Redis 主从

## 这里可以使用一台服务器启动两个 Redis 服务,只需指定不同的配置文件,不同的端口即可
## 为了加入防火墙规则,我使用两台服务器来完成

Redis Master :192.168.1.88
Redis Slave :192.168.1.80

1、Redis Master ( 这里不写安装过程了,写到 Slave 位置 )

[[email protected] ~]# vim /usr/local/redis/redis.conf

daemonize yes
port 6379
timeout 300
loglevel verbose
pidfile /usr/local/redis/logs/redis.pid
logfile /usr/local/redis/logs/redis.log

requirepass redispassword
databases 16

save 900 1
save 300 10
save 60 10000
rdbcompression yes
dbfilename dump.rdb

dir /usr/local/redis/data/

appendonly no
appendfilename appendonly.aof
appendfsync everysec

no-appendfsync-on-rewrite yes
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

[[email protected] ~]# redis-server /usr/local/redis/redis.conf

[[email protected] ~]# netstat -anpt | grep redis
tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN 1154/redis-server

[[email protected] ~]# iptables -I INPUT 4 -s 192.168.1.80 -p tcp --dport 6379 -j ACCEPT

2、Redis Slave

下载地址:https://code.google.com/p/redis/downloads/list

[[email protected] ~]# cd /usr/local/src/
[[email protected] src]# tar zxf redis-2.6.10.tar.gz
[[email protected] src]# cd redis-2.6.10
[[email protected] redis-2.6.10]# make ; make install

[[email protected] ~]# mkdir /usr/local/redis
[[email protected] ~]# cd !$
cd /usr/local/redis
[[email protected] redis]# cp ../src/redis-2.6.10/redis.conf .
[[email protected] redis]# cp ../src/redis-2.6.10/src/redis-cli .
[[email protected] redis]# cp ../src/redis-2.6.10/src/redis-server .
[[email protected] redis]# cp ../src/redis-2.6.10/src/redis-sentinel .
[[email protected] redis]# cp ../src/redis-2.6.10/src/redis-benchmark .
[[email protected] redis]# cp ../src/redis-2.6.10/src/redis-check-aof .
[[email protected] redis]# cp ../src/redis-2.6.10/src/redis-check-dump .

[[email protected] redis]# echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
[[email protected] redis]# sysctl vm.overcommit_memory=1
[[email protected] redis]# mkdir data logs
[[email protected] redis]# vim redis.conf

daemonize yes
port 6379
timeout 300
loglevel verbose
pidfile /usr/local/redis/logs/redis.pid
logfile /usr/local/redis/logs/redis.log

#requirepass redispassword
databases 16

save 900 1
save 300 10
save 60 10000
rdbcompression yes
dbfilename dump.rdb

dir /usr/local/redis/data/

appendonly no
appendfilename appendonly.aof
appendfsync everysec

no-appendfsync-on-rewrite yes
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

masterauth redispassword
slaveof 192.168.1.88 6379

## 直接复制 Master 的配置文件,添加最后两行即可

[[email protected] ~]# redis-server /usr/local/redis/redis.conf

[[email protected] ~]# netstat -anpt | grep redis
tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN 3442/redis-server
tcp 0 0 192.168.1.80:50799 192.168.1.88:6379 ESTABLISHED 3442/redis-server

## 可以看到启动成功,并且建立了一条到 Master 的连接

[[email protected] ~]# ls /usr/local/redis/data/
dump.rdb

## data 目录下也有了 master 同步过来的数据( 虽然主库并没有写入数据 )

二、测试 Redis 主从

[[email protected] ~]# redis-cli -a redispassword
redis 127.0.0.1:6379> keys *
(empty list or set)
redis 127.0.0.1:6379> set name wang
OK
redis 127.0.0.1:6379> set id 8
OK
redis 127.0.0.1:6379> keys *
1) "id"
2) "name"
redis 127.0.0.1:6379> quit

## 这是在 master 上的操作,-a 指定认证密码

[[email protected] ~]# redis-cli
redis 127.0.0.1:6379> keys *
1) "id"
2) "name"
redis 127.0.0.1:6379> get name
"wang"
redis 127.0.0.1:6379> get id
"8"
redis 127.0.0.1:6379> set cc 123
(error) READONLY You can‘t write against a read only slave.
redis 127.0.0.1:6379> quit

## 这是在从上的操作,其中 slave 没有设密码所以不用 -a 指定,可以查到同步过来的 keys ,因为要保持数据一致性,所以不能写入。
## 如果在主执行 del name 那么从上的 name 也被删除。
## 主从同步完成 !

时间: 2024-10-10 20:51:01

Redis 主从同步配置的相关文章

redis 主从同步配置以及redis+keeplived高可用架构

系统环境:CentOS release 6.3 (Final) redis版本:redis-2.8.13 redis主:192.168.1.141 从:192.168.1.142 redis主从同步配置: redis安装配置已经在上篇文档写过: 主从安装配置好redis后,在主redis写入数据,然后从redis主配置文件设置成从: # vim /etc/redis.conf slaveof 192.168.1.141 6379     在配置文件最后加入 然后重启从redis:主从配置成功

redis主从同步与读写分离

一.原理 Redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构.下面是关于redis主从复制的一些特点: 1.master可以有多个slave. 2.除了多个slave连到相同的master外,slave也可以连接其他slave形成图状结构. 3.主从复制不会阻塞master.也就是说当一个或多个slave与master进行初次同步数据时,master可以继续处理client发来的请求.相反s

安装配置redis主从同步

172.31.31.167 redis master 172.31.31.168 redis slave yum -y install make gcc gcc-c++ tar -zxf redis-3.2.11.tar.gz && cd redis-3.2.11 make && make install mkdir -p /usr/local/redis/conf cp -pr /usr/local/bin /usr/local/redis cp redis.conf /

Redis主从同步分析

一.Redis主从同步原理1.1 Redis主从同步的过程配置好slave服务器连接的master后,slave会建立和master的连接,然后发送sync命令.无论是第一次同步建立的连接还是连接断开后的重新连接,master都会启动一个后台进程,将数据库快照保存到文件中.同时master主进程会开始收集新的写命令并缓存起来.当后台进程完成写文件后,master就将快照文件发送给slave,slave将文件保存到磁盘上,然后加载到内存将数据库快照恢复到slave上.slave完成快照文件的恢复后

Redis主从同步分析(转)

一.Redis主从同步原理 1.1 Redis主从同步的过程 配置好slave服务器连接的master后,slave会建立和master的连接,然后发送sync命令.无论是第一次同步建立的连接还是连接断开后的重新连接,master都会启动一个后台进程,将数据库快照保存到文件中.同时master主进程会开始收集新的写命令并缓存起来.当后台进程完成写文件后,master就将快照文件发送给slave,slave将文件保存到磁盘上,然后加载到内存将数据库快照恢复到slave上.slave完成快照文件的恢

Redis主从环境配置

1.Redis主从同步原理 redis主服务器会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,然后将数据文件同步给从服务器,从服务器加载记录文件,在内存库中更新新数据. 2.VMWare配置2台服务器 在已安装好redis服务的虚拟机,重命名为Redis-Master(主机),另外克隆一个虚拟机,重命名Redis-Slave(从机) 查看IP:192.168.74.128; 查看IP跟主机同一网段192.168.74.129; 打开PuTTY(session1),连接主机,(se

【转】Redis主从同步与集群管理

转自http://blog.csdn.net/u012152619/article/details/52854465 1.主从同步原理 像MySQL一样,Redis是支持主从同步的,而且也支持一主多从以及多级从结构.主从结构,一是为了纯粹的冗余备份,二是为了提升读性能,比如很消耗性能的SORT就可以由从服务器来承担.Redis的主从同步是异步进行的,这意味着主从同步不会影响主逻辑,也不会降低Redis的处理性能.主从架构中,可以考虑关闭主服务器的数据持久化功能,只让从服务器进行持久化,这样可以提

Redis主从同步原理解析

redis主从同步原理 在主从数据同步过程中, master只在第一次同步时创建了RDB文件,用此做基础进行同步. 之后的同步,都是通过增量传输命令的方式(AOF)进行同步. 环境描述: master:192.168.2.100    不开启RDB和AOF slave:192.168.2.200    开启RDB和AOF 配置信息: master: # vim etc/redis.conf #save 600 5           //禁用RDB appendonly no       //禁

redis 主从同步&哨兵模式&codis

原文:redis 主从同步&哨兵模式&codis 主从同步 1.CPA原理 1. CPA原理是分布式存储理论的基石: C(一致性):   A(可用性):  P(分区容忍性); 2. 当主从网络无法连通时,修改操作无法同步到节点,所以"一致性"无法满足 3. 除非我们牺牲"可用性",也就是暂停分布式节点服务,不再提供修改数据功能,知道网络恢复 一句话概括CAP: 当网络分区发生时,一致性 和 可用性 两难全 2.redis主从同步介绍 1. 和MySQ