`
bit1129
  • 浏览: 1069788 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【Redis二】Redis2.8.17搭建主从复制环境

 
阅读更多

开始使用Redis2.8.17

Redis第一篇在Redis2.4.5上搭建主从复制环境,对它的主从复制的工作机制,真正的惊呆了。不知道Redis2.8.17的主从复制机制是怎样的,Redis到了2.4.5这个版本,主从复制还做成那样,Impossible is nothing! 本篇把主从复制环境再搭一遍看看效果这次在Unbuntu上用官方支持的版本。

 

Ubuntu上安装Redis

$ wget http://download.redis.io/releases/redis-2.8.17.tar.gz
$ tar xzf redis-2.8.17.tar.gz
$ cd redis-2.8.17
$ make
$ make install

 编译出二进制文件后存在于redis-2.8.17/src目录,不过Redis自动的在/usr/local/bin/redis-server建立了软连指向src目录下的redis-server,包括其他的可执行文件。

 

需要说明的是,使用redis-server -v查看Redis的版本号是2.8.9,继上篇吐槽Redis2.4.5的主从复制机制外,对于Redis犯的这种错误,小伙伴们都惊呆了。

 

启动Redis,有给了一个惊喜,在Ubuntu上,不带redis.conf配置文件启动没有问题,可以正常启动,带了配置文件,报各种directive问题,

 

Bad directive or wrong number of arguments

 

先放弃Unbuntu上的环境,还是继续在Windos上搭建吧。

 

找到解决的办法,make完了,再执行make install命令即可解决上面的问题

 

 

Redis主从复制搭建步骤

 

Redis搭建主从复制的步骤十分简单,以下在Windows上操作。

 

 

1. 解压Redis压缩包至E:\devsoftware\redis-2.8.17

2.在Redis目录中复制两份redis.windows.conf,分别命名为redis.windows.conf.slave1,redis.windows.conf.slave2

3.修改redis.conf.slave1文件,

  • port 6379 改为 port 6380
  • 打开slaveof指令,改为slaveof 127.0.0.1 6379
  • 将快照文件名改为dbfilename dump.slave1.rdb
  • 如果使用AOF方式持久化,则需要将appendfilename appendonly.aof改为appendfilename appendonly.slave1.aof

4. 修改redis.conf.slave2文件

  • port 6379 改为 port 6381
  • 打开slaveof指令,改为slaveof 127.0.0.1 6379
  • 将快照文件名改为dbfilename dump.slave2.rdb
  • 如果使用AOF方式持久化,则需要将appendfilename appendonly.aof改为appendfilename appendonly.slave2.aof

5. 启动三个Redis服务器,形成一主两从的主从复制副本集

 

通过上面的启动过程,可见只需要redis-server一个启动脚本即可,它读取不同的配置文件,来完成初始化

 

 

  • Master启动时的日志输出

 

 

[21684] 25 Nov 20:54:16 * Slave ask for synchronization
[21684] 25 Nov 20:54:16 * Starting BGSAVE for SYNC
[21684] 25 Nov 20:54:16 * Foregroud saving started by pid 21684
[21684] 25 Nov 20:54:17 * DB saved on disk
[21684] 25 Nov 20:54:17 * Background saving terminated with suc
[21684] 25 Nov 20:54:17 * Synchronization with slave succeeded

 

 

  •  Slave1启动时的日志输出

 

[21068] 25 Nov 20:54:15 * Server started, Redis version 2.4.5
[21068] 25 Nov 20:54:15 * DB loaded from disk: 0 seconds
[21068] 25 Nov 20:54:15 * The server is now ready to accept connections on port
[21068] 25 Nov 20:54:16 - DB 0: 1 keys (0 volatile) in 4 slots HT.
[21068] 25 Nov 20:54:16 - 0 clients connected (0 slaves), 1180024 bytes in use
[21068] 25 Nov 20:54:16 * Connecting to MASTER...
[21068] 25 Nov 20:54:16 * MASTER <-> SLAVE sync started
[21068] 25 Nov 20:54:16 * Non blocking connect for SYNC fired the event.
[21068] 25 Nov 20:54:17 * MASTER <-> SLAVE sync: receiving 19 bytes from master
[21068] 25 Nov 20:54:17 * MASTER <-> SLAVE sync: Loading DB in memory
[21068] 25 Nov 20:54:17 * MASTER <-> SLAVE sync: Finished with success

 

主服务器写入从服务器读取数据测试

  •  往主服务器上写入一个数据,检查从服务器是否同步

 

 

E:\devsoftware\redis-2.4.5-win32-win64\64bit>redis-cli.exe -h 127.0.0.1 -p 6379
redis 127.0.0.1:6379> set  abc 1
OK
redis 127.0.0.1:6379> get abc
"1"
redis 127.0.0.1:6379>Ctrl + C
 

 

  • 两个从服务器的读取操作:

 

 

E:\devsoftware\redis-2.4.5-win32-win64\64bit>redis-cli.exe -h 127.0.0.1 -p 6380
redis 127.0.0.1:6380> get abc
"1"
redis 127.0.0.1:6380> ^C
E:\devsoftware\redis-2.4.5-win32-win64\64bit>redis-cli.exe -h 127.0.0.1 -p 6381
redis 127.0.0.1:6381> get abc
"1"
redis 127.0.0.1:6381>
 

 

从服务器写入,其它服务器读取数据测试


系统提示,
(error) READONLY You can't write against a read only slave.
 
只读slave不能写入数据,有只读的slave,就应该有可读写的slave的存在。这个看看配置文件,配置文件里有如下指令
slave-read-only yes
 配置文件对这个指令的注释是,

Since Redis 2.6 by default slaves are read-only.
Note: read only slaves are not designed to be exposed to untrusted clients on the internet. It's just a protection layer against misuse of the instance. Still a read only slave exports by default all the administrative commands
such as CONFIG, DEBUG, and so forth. To a limited extend you can improve security of read only slaves using 'rename-command' to shadow all the  administrative / dangerous commands.
 

主服务器挂了,是否会自动的Lead选举

 经测试发现,slave1和slave2已经处于无Lead状态了,测试方法根据前面的主服务器的特性,在slave1和slave2上分别插入一条数据,结果都提示是只读从服务器,不能写入,也就是说,slave1和slave2都不是主服务器。
当 主服务器起来之后,slave1和slave2又成为它的slave,也就是,不管主服务器什么情况,它永远是slave的master。但是此是slave1和slave2已经不能写入但是可读取,因此,Redis主从复制存在Master单点故障

 内存快照文件

在 Redis的当前目录下产生了三个rdb文件,分别是dump.rdb,dump.slave1.rdb和dump.slave2.rdb。rdb文件时 Redis的内存快照文件。rdb是二进制文件,不过用文本编辑器打开rdb文件,还是能隐隐约约的看到其中的一些内容,如dump.slave2.rdb
REDIS0002? def? abc?
Redis默认配置启用了内存快照的方式来进行内存数据持久化操作,这在redis.conf文件中定义
save 900 1 //900秒内,有1个key变化,则做快照
save 300 10 //300秒内,有10个key变化,则做快照
save 60 10000 //60秒内,有10000个key变化,则做快照
 计时时间点是从内存快照做完开始算起
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 

分享到:
评论

相关推荐

    第02篇:Redis主从复制getshell1

    1、生成恶意.so文件,下载RedisModules-ExecuteCommand使用make编译即可生成 1、监听本地1234端口 2、将Redis服务器设置

    Redis主从复制以及主从复制技术原理.docx

    Redis 主从复制技术原理 概述 Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。Redis 主从复制是指将一台 Redis 服务器的数据,复制到...

    Redis部署笔记(单机+主从+哨兵+集群)

    基于Centos7系统,由浅入深讲解如何部署Redis的四种模式,分别是:单机模式、主从模式、哨兵模式、集群模式。 完整原文:http://exp-blog.com/2018/09/14/pid-2285/ 同时提供Jedis客户端封装源码: ● 屏蔽Jedis与...

    Redis主从搭建

    ### Redis主从搭建知识点 #### 一、Redis单机安装部署 在进行Redis主从配置之前,首先需要完成单个Redis实例的安装部署工作。以下是详细的步骤: 1. **准备安装包**: - 将`redis-2.8.6.tar.gz`安装包拷贝到指定...

    【中间件篇-Redis缓存数据库06】Redis主从复制/哨兵 高并发高可用

    一、Redis主从复制 1. 主从复制的基本概念:主从复制是将一个Redis实例(主节点)的数据实时同步到其他实例(从节点)的过程。这样,即使主节点出现问题,从节点也能立即接管服务,保证系统的连续性。 2. 同步过程...

    Redis集群-Redis安装、Redis主从复制、哨兵、Redis集群

    二、主从复制 主从复制是Redis集群中的一种重要技术,它可以避免Redis单点故障,实现读写分离架构,满足读多写少的应用场景。我们可以通过在redis.conf中设置slaveof或使用redis-cli客户端连接到Redis服务,执行...

    1个Nginx+2个tomcat+2个redis服务器(主从复制)实现反向代理,实现动静分离。 - 张相逢的博客 - CSDN博客收藏20200109-134106.html

    1个Nginx+2个tomcat+2个redis服务器(主从复制)实现反向代理,实现动静分离。 - 张相逢的博客 - CSDN博客 Nginx的个人理解 - fly1056601582的博客 - CSDN博客 Redis 集合(Set)_redis教程 mysql、zookeeper、redis和...

    某播客Redis3.0新特性、主从复制、集群视频教程

    某播客Redis3.0新特性、主从复制、集群视频教程 某播客Redis3.0新特性、主从复制、集群视频教程 某播客Redis3.0新特性、主从复制、集群视频教程

    Redis主从复制和集群配置

    ### Redis主从复制和集群配置详解 #### 一、Redis主从复制原理及配置 **1.1 概述** Redis的主从复制机制是一种重要的数据同步方式,它支持一个或多个从数据库(slave)与主数据库(master)之间进行数据同步。其中,...

    redis主从复制集群

    #### 二、Redis 主从复制的部署 ##### 1. 安装 Redis 3.0 - 使用 `yum` 安装所需的依赖包。 - 下载并解压 Redis 源码包。 - 编译安装 Redis。 - 修改配置文件 `redis.conf`,启用后台运行模式。 ```bash yum -y ...

    redis常用命令,redis配置文件,redis持久化,redis事务,redis主从复制,jedis的使用

    下面是对 Redis 的常用命令、配置文件、持久化、事务、主从复制、Jedis 使用的详细讲解。 Redis 常用命令 Redis 提供了很多有用的命令来管理和操作数据。下面是一些常用的 Redis 命令: * SET key value:设置...

    Redis单机搭建主从复制以及哨兵机制

    本篇将详细介绍如何在CentOS 7系统上搭建Redis的主从复制及哨兵机制。 ### 主从复制 主从复制是Redis实现高可用性的基础,它允许一个或多个从服务器(Slaves)实时同步主服务器(Master)的数据。当主服务器发生...

    Redis搭建(集群+主从复制).docx

    【Redis搭建】 ...以上是 Redis 单节点、主从复制和集群搭建的基础操作,实际部署中还需要考虑网络环境、安全性、性能优化等因素。对于大规模生产环境,建议参考 Redis 官方文档和最佳实践进行配置。

    Redis从入门到精通(深入剖析)【55集完整资料】48-redis-redis的主从复制-设置主从关系、全量复制、增量复制.avi

    Redis从入门到精通高清,迅雷播放器组件可顺利播放

    LAMP架构+Redis主从复制.docx

    二、Redis主从复制 Redis是一个开源的、基于内存的数据存储系统,具有高性能和高可用性。使用Redis主从复制,可以实现高可用性和负载均衡。 2.1 Redis安装 使用rpm命令安装Redis,并配置主从复制。Redis主从复制...

    Window环境Redis-Master-Slave-主从配置

    Redis是一款高性能的键值对数据库,常...以上就是在Windows环境下配置Redis主从复制的详细步骤和相关知识点。通过这种方式,你可以构建一个简单但功能强大的Redis集群,为你的应用程序提供高效、可靠的数据存储和访问。

    Redis高可用之哨兵+主从模式总结

    主从模式是 Redis 提供的一种基础的高可用策略,它通过数据复制来实现读写分离。主节点负责处理写操作,而从节点则处理读操作,从而分散负载,提高系统的处理能力。主节点的数据会实时同步到从节点,确保数据的一致...

    linux下如何安装配置redis及主从配置

    本文将详细介绍Linux环境下Redis的安装步骤、配置过程以及主从复制的配置方法。 ### Redis简介 Redis是一个开源的使用内存存储的高性能键值对数据库,它支持丰富的数据类型,包括字符串(strings)、散列(hashes...

Global site tag (gtag.js) - Google Analytics