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 位置 )
[root@master ~]# vim /usr/local/redis/redis.conf daemonize yes
port
timeout
loglevel verbose
pidfile /usr/local/redis/logs/redis.pid
logfile /usr/local/redis/logs/redis.log requirepass redispassword
databases save
save
save
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
auto-aof-rewrite-min-size 64mb [root@master ~]# redis-server /usr/local/redis/redis.conf [root@master ~]# netstat -anpt | grep redis
tcp 0.0.0.0: 0.0.0.0:* LISTEN /redis-server [root@master ~]# iptables -I INPUT -s 192.168.1.80 -p tcp --dport -j ACCEPT
2、Redis Slave
下载地址:https://code.google.com/p/redis/downloads/list
[root@slave ~]# cd /usr/local/src/
[root@slave src]# tar zxf redis-2.6..tar.gz
[root@slave src]# cd redis-2.6.
[root@slave redis-2.6.]# make ; make install [root@slave ~]# mkdir /usr/local/redis
[root@slave ~]# cd !$
cd /usr/local/redis
[root@slave redis]# cp ../src/redis-2.6./redis.conf .
[root@slave redis]# cp ../src/redis-2.6./src/redis-cli .
[root@slave redis]# cp ../src/redis-2.6./src/redis-server .
[root@slave redis]# cp ../src/redis-2.6./src/redis-sentinel .
[root@slave redis]# cp ../src/redis-2.6./src/redis-benchmark .
[root@slave redis]# cp ../src/redis-2.6./src/redis-check-aof .
[root@slave redis]# cp ../src/redis-2.6./src/redis-check-dump . [root@slave redis]# echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
[root@slave redis]# sysctl vm.overcommit_memory=
[root@slave redis]# mkdir data logs
[root@slave redis]# vim redis.conf daemonize yes
port
timeout
loglevel verbose
pidfile /usr/local/redis/logs/redis.pid
logfile /usr/local/redis/logs/redis.log #requirepass redispassword
databases save
save
save
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
auto-aof-rewrite-min-size 64mb masterauth redispassword
slaveof 192.168.1.88
## 直接复制 Master 的配置文件,添加最后两行即可
[root@slave ~]# redis-server /usr/local/redis/redis.conf [root@slave ~]# netstat -anpt | grep redis
tcp 0.0.0.0: 0.0.0.0:* LISTEN /redis-server
tcp 192.168.1.80: 192.168.1.88: ESTABLISHED /redis-server
## 可以看到启动成功,并且建立了一条到 Master 的连接
[root@slave ~]# ls /usr/local/redis/data/
dump.rdb
## data 目录下也有了 master 同步过来的数据( 虽然主库并没有写入数据 )
二、测试 Redis 主从
[root@master ~]# redis-cli -a redispassword
redis 127.0.0.1:> keys *
(empty list or set)
redis 127.0.0.1:> set name wang
OK
redis 127.0.0.1:> set id
OK
redis 127.0.0.1:> keys *
) "id"
) "name"
redis 127.0.0.1:> quit
## 这是在 master 上的操作,-a 指定认证密码
[root@slave ~]# redis-cli
redis 127.0.0.1:> keys *
) "id"
) "name"
redis 127.0.0.1:> get name
"wang"
redis 127.0.0.1:> get id
""
redis 127.0.0.1:> set cc
(error) READONLY You can't write against a read only slave.
redis 127.0.0.1:> quit
## 这是在从上的操作,其中 slave 没有设密码所以不用 -a 指定,可以查到同步过来的 keys ,因为要保持数据一致性,所以不能写入。
## 如果在主执行 del name 那么从上的 name 也被删除。
## 主从同步完成 !
Redis 主从同步配置的更多相关文章
- redis主从同步配置
主服务器无需操作,从服务器 SLAVEOF 主服务器IP 端口 即可. 断开主从,执行 SLAVEOF NO ONE 即可. 同事和我在内网配置了连内网测试的服务器可以执行,但是连对方的不行,开始以为 ...
- redis主从同步故障切换及集群配置
一.redis是一中高性能的缓存数据库, 原理:1. 从服务器向主服务器发送 SYNC 命令.2. 接到 SYNC 命令的主服务器会调用BGSAVE 命令,创建一个 RDB 文件,并使用缓冲区记录接下 ...
- Redis系列之(二):Redis主从同步,读写分离
1. Redis主从同步 Redis支持主从同步.数据可以从主服务器向任意数量的从服务器上同步,同步使用的是发布/订阅机制. 2. 配置主从同步 Mater Slave的模式,从Slave向Maste ...
- redis 主从同步
修改redis.conf配置文件 vi redis.conf 在编辑模式下 输入 /slaveof 来搜索 将slaveof启用 即 将#删除 依次配置所有 slave 并将进程 kill 掉 重启 ...
- Redis系列之(二):Redis主从同步,读写分离(转)
1. Redis主从同步 Redis支持主从同步.数据可以从主服务器向任意数量的从服务器上同步,同步使用的是发布/订阅机制. 2. 配置主从同步 Mater Slave的模式,从Slave向Maste ...
- Redis主从环境配置
1.Redis主从同步原理 redis主服务器会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,然后将数据文件同步给从服务器,从服务器加载记录文件,在内存库中更新新数据. 2.VMWar ...
- Redis主从同步分析(转)
一.Redis主从同步原理 1.1 Redis主从同步的过程 配置好slave服务器连接的master后,slave会建立和master的连接,然后发送sync命令.无论是第一次同步建立的连接还是连接 ...
- 15.6,redis主从同步
redis主从同步 原理:1. 从服务器向主服务器发送 SYNC 命令.2. 接到 SYNC 命令的主服务器会调用BGSAVE 命令,创建一个 RDB 文件,并使用缓冲区记录接下来执行的所有写命令.3 ...
- Redis主从同步分析
一.Redis主从同步原理1.1 Redis主从同步的过程配置好slave服务器连接的master后,slave会建立和master的连接,然后发送sync命令.无论是第一次同步建立的连接还是连接断开 ...
随机推荐
- BZOJ3209 花神的数论题 【组合数学+数位DP+快速幂】*
BZOJ3209 花神的数论题 Description 背景 众所周知,花神多年来凭借无边的神力狂虐各大 OJ.OI.CF.TC …… 当然也包括 CH 啦. 描述 话说花神这天又来讲课了.课后照例有 ...
- 零基础学习hadoop到上手工作线路指导初级篇:hive及mapreduce
此篇是在零基础学习hadoop到上手工作线路指导(初级篇)的基础,一个继续总结.五一假期:在写点内容,也算是总结.上面我们会了基本的编程,我们需要对hadoop有一个更深的理解:hadoop分为h ...
- 一个查看Cookie的便捷工具——EditThisCookie
Appium正在努力准备中,很快就要和大家见面了- 今天给大家分享一个查看cookies的工具,用fiddler总感觉有点麻烦,还乱七八糟的找不到到底哪个链接是当前网站的cookies: 首先,你用的 ...
- php基础语法(文件加载和错误)
文件加载 有4个文件加载的语法形式(注意,不是函数): include, include_once, require, require_once; 他们的本质是一样的,都是用于加载/引入/包含/载 ...
- 7个去伪存真的JavaScript面试题
1.创建JavaScript对象的两种方法是什么? 这是一个非常简单的问题,如果你用过JavaScript的话.你至少得知道一种方法.但是,尽管如此,根据我的经验,也有很多自称是JavaScript程 ...
- RK3288 通过指令查看当前显示内容(framebuffer)
$ adb shell root@xxx:/ # cd /dev/graphics cd /dev/graphics root@xxx:/dev/graphics # ls ls fb0 fb1 fb ...
- 骰子点数概率__dp
骰子点数概率 时间限制:1 秒 内存限制:32 兆 题目描述: 把n个骰子扔在地上,所有骰子朝上一面的点数之和为S.输入n,打印出S的所有可能的值出现的概率. 输入: 输入包括一个整数N(1<= ...
- matlab读写图片,读取图像序列,读取AVI视频
介绍使用matlab读写图片,读取图像序列,读取AVI视频的方法: 一.读写图像 使用matlab读一幅图像,并另存 % Filename: ImageReadWrite clc; clear; i ...
- 安装sphinx报错(undefined reference to `libiconv_open' 、undefined reference to `libiconv'、undefined reference to `libiconv_close'、make[1]: *** No rule to make target `all'. Stop. 、make: *** [all-recursive
(为知笔记copy过来格式有变,希望对遇到此问题的童鞋有帮助) 具体错误: Thank you for choosing Sphinx! [root@vm-vagrant csft-4.1]# mak ...
- dubbox实现REST服务
一.dubbox的由来 dubbox是当当网基于dubbo的基础上开发的扩展版,也可以认为是dubbo的升级版,根据当前互联网的应用需求,增加了很多扩展的功能. dubbox并没有发布到maven中央 ...