redis主备同步配置方法

原创 2016年08月29日 11:53:07

1. 配置主备

假设主机ip:10.136.16.146 port:6789
备机ip:10.136.30.144

我们有两种方式为其配置备机

方法1:修改备机配置文件

redis.conf中增加

daemonize yes
slaveof 10.136.16.146 6789
# 如果主机有密码,则修改下面一行即可
# masterauth <master-password>

在备机上启动redis

redis-server ./tmp/redis.conf

连接上备机reids,执行info replication, 可以看到下面的结果

127.0.0.1:9303> info replication
# Replication
role:slave
master_host:10.136.16.146
master_port:6789
master_link_status:up
master_last_io_seconds_ago:0
master_sync_in_progress:0

...

此时,我们的主备就已配好。数据会自动同步(包括主机之前的数据),如果之前主机中有数据,此时已可以在备机中读取。

连接主机,执行info replication,可以看到下面结果

10.136.16.146:6789> info replication
# Replication
role:master
connected_slaves:1
slave1:ip=10.136.30.144,port=9303,state=online,offset=40383758059,lag=0
master_repl_offset:40383983932

...

可以看到,主机上已连接一台备份redis,正是我们刚刚启动的那台。

方法2:动态修改备机配置

当然,有时你可能没有权限修改备机redis配置文件或重启redis-server。这时,如果你想配置主备,只需要连上备机redis,执行:

slaveof 10.136.16.146 6789

#主机有密码,还要执行这条
#config set masterauth <password>

同样可以达到配置主备的目的

2.取消主备

有两种方法取消息主备
1. 直接在配置文件中去掉slaveof的配置,然后重启redis-server
2. 连入备机,执行

slaveof no one

取消主备后,在备机上执行info replication, 会看到

127.0.0.1:9303> info replication
# Replication
role:master
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

当前机器的角色已不再是slave, 而是master

3. 几个可能用到的参数

  1. slave-read-only:两个值,yes/no,用于控制slave是否为只读
  2. slave-serve-stale-data: 用于控制当slave和master失去连接或正在进行同步时,slave的行为。
    • yes(默认):仍然正常处理客户端请求,但数据可能是旧的
    • no:向客户端回复SYNC with master in progress

4. 建议

如果配置了主备,建议master开启数据持久化,或者至少不要让master在挂掉后可以自动重启。

可以想象这样一个场景:master未开启持久化,master挂了后被监控重启。这时,master中没有任何数据,slave由于和master同步,上面的数据也将被清空!

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

redis主从同步原理

1. 概述整体过程概述如下: 1. 初始化配置好主从后,无论slave是初次还是重新连接到master, slave都会发送PSYNC命令到master。 如果是重新连接,且满足增量同步的条件(3...

Redis 数据同步机制分析

Redis的主从同步机制可以确保redis的master和slave之间的数据同步。按照同步内容的多少可以分为全同步和部分同步;按照同步的时机可以分为slave刚启动时的初始化同步和正常运行过程中的数...

Redis 主从复制 原理与用法

Redis 复制功能的几个重要方面: 1. 一个Master可以有多个Slave; 2. Redis使用异步复制。从2.8开始,Slave会周期性(每秒一次)发起一个Ack确认复制流(replicat...

redis主从复制和集群实现原理

redis主从复制 redis主从配置比较简单,基本就是在从节点配置文件加上:slaveof 192.168.33.130 6379 主要是通过master server持久化的rdb文件实现的。ma...

redis持久化,主从及数据备份

现在在项目里已经大量使用redis了,为了提高redis的性能和可靠性我们需要知道和做到以下几件事: 常用内存优化手段与参数 redis的性能如何是完全依赖于内存的,所以我们需要知道如何来...

redis主从配置及主从切换

环境描述: 主redis:192.168.10.1 6379 从redis:192.168.10.2 6380 一、主从配置 1、将主从redis配置文件redis.conf中的aemon...

Java集合:ArrayList使用详解及源码分析

1 使用方法  ArrayList是数组队列,可以实现容量的动态增长。ArrayList类继承了AbstractList抽象类并且实现了List、RandomAccess,Cloneable以及jav...

redis+mysql数据同步(协同)C/C++实现

说明: 本文只是对redis和mysql的数据迁徙做了简单介绍关于redis+mysql协同: 数据量巨大的情况下,频繁的操作数据库(这里值mysql),可能会造成击穿。而分布式缓存技术已...

Java并发编程:并发基础概念

Java并发编程(一)  并发编程可以使我们的程序执行速度得到提高,多进程和多线程是常见的并发技术。 1、多进程  2、多线程  3、Java并发编程采用的方法1、多进程  多进程是实现并发技术最...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)