Redis Master-Slave 读写分离测试

1 master/slave server 启动

利用默认redis.conf配置文件启动master server,端口6379 。

[7304] 29 Aug 09:57:26 - 0 clients connected (0 slaves), 673996 bytes in use

[7304] 29 Aug 09:57:31 - DB 0: 15 keys (0 volatile) in 16 slots HT.

[7304] 29 Aug 09:57:31 - 0 clients connected (0 slaves), 673996 bytes in use

[7304] 29 Aug 09:57:36 - DB 0: 15 keys (0 volatile) in 16 slots HT.

[7304] 29 Aug 09:57:36 - 0 clients connected (0 slaves), 673996 bytes in use

[7304] 29 Aug 09:57:41 - DB 0: 15 keys (0 volatile) in 16 slots HT.

修改redis配置文件, 主要修改端口为6380,不是默认的6379, 然后修改slaveof字段,设置主master为127.0.0.7  6379

启动后如下

[1704] 29 Aug 10:03:16 - 1 clients connected (0 slaves), 681872 bytes in use

[1704] 29 Aug 10:03:21 - DB 0: 15 keys (0 volatile) in 16 slots HT.

[1704] 29 Aug 10:03:21 - 1 clients connected (0 slaves), 681872 bytes in use

[1704] 29 Aug 10:03:26 - DB 0: 15 keys (0 volatile) in 16 slots HT.

[1704] 29 Aug 10:03:26 - 1 clients connected (0 slaves), 681872 bytes in use

[1704] 29 Aug 10:03:31 - DB 0: 15 keys (0 volatile) in 16 slots HT.

[1704] 29 Aug 10:03:31 - 1 clients connected (0 slaves), 681872 bytes in use

[1704] 29 Aug 10:03:36 - DB 0: 15 keys (0 volatile) in 16 slots HT.

[1704] 29 Aug 10:03:36 - 1 clients connected (0 slaves), 681872 bytes in use

[1704] 29 Aug 10:03:41 - DB 0: 15 keys (0 volatile) in 16 slots HT.

[1704] 29 Aug 10:03:41 - 1 clients connected (0 slaves), 681872 bytes in use

[1704] 29 Aug 10:03:46 - DB 0: 15 keys (0 volatile) in 16 slots HT.

[1704] 29 Aug 10:03:46 - 1 clients connected (0 slaves), 681872 bytes in use

[1704] 29 Aug 10:03:51 - DB 0: 15 keys (0 volatile) in 16 slots HT.

[1704] 29 Aug 10:03:51 - 1 clients connected (0 slaves), 681872 bytes in use

[1704] 29 Aug 10:03:56 - DB 0: 15 keys (0 volatile) in 16 slots HT.

[1704] 29 Aug 10:03:56 - 1 clients connected (0 slaves), 681872 bytes in use

[1704] 29 Aug 10:04:01 - DB 0: 15 keys (0 volatile) in 16 slots HT.

[1704] 29 Aug 10:04:01 - 1 clients connected (0 slaves), 681872 bytes in use

主master已经检测到有一个slave连接

[7304] 29 Aug 09:58:31 - 0 clients connected (1 slaves), 681960 bytes in use

[7304] 29 Aug 09:58:36 - DB 0: 15 keys (0 volatile) in 16 slots HT.

[7304] 29 Aug 09:58:36 - 0 clients connected (1 slaves), 681960 bytes in use

[7304] 29 Aug 09:58:41 - DB 0: 15 keys (0 volatile) in 16 slots HT.

[7304] 29 Aug 09:58:41 - 0 clients connected (1 slaves), 681960 bytes in use

[7304] 29 Aug 09:58:46 - DB 0: 15 keys (0 volatile) in 16 slots HT.

[7304] 29 Aug 09:58:46 - 0 clients connected (1 slaves), 681960 bytes in use

[7304] 29 Aug 09:58:51 - DB 0: 15 keys (0 volatile) in 16 slots HT.

[7304] 29 Aug 09:58:51 - 0 clients connected (1 slaves), 681960 bytes in use

[7304] 29 Aug 09:58:56 - DB 0: 15 keys (0 volatile) in 16 slots HT.

[7304] 29 Aug 09:58:56 - 0 clients connected (1 slaves), 681960 bytes in use

[7304] 29 Aug 09:59:01 - DB 0: 15 keys (0 volatile) in 16 slots HT.

[7304] 29 Aug 09:59:01 - 0 clients connected (1 slaves), 681960 bytes in use

[7304] 29 Aug 09:59:06 - DB 0: 15 keys (0 volatile) in 16 slots HT.

[7304] 29 Aug 09:59:06 - 0 clients connected (1 slaves), 681960 bytes in use

客户端如果连接到slave,则slave如下显示:

[1704] 29 Aug 10:05:52 - 2 clients connected (0 slaves), 689700 bytes in use

[1704] 29 Aug 10:05:57 - DB 0: 15 keys (0 volatile) in 16 slots HT.

[1704] 29 Aug 10:05:57 - 2 clients connected (0 slaves), 689700 bytes in use

[1704] 29 Aug 10:06:02 - DB 0: 15 keys (0 volatile) in 16 slots HT.

[1704] 29 Aug 10:06:02 - 2 clients connected (0 slaves), 689700 bytes in use

如果连接到master,则结果如下

[7304] 29 Aug 10:06:53 - Accepted 127.0.0.1:65311

[7304] 29 Aug 10:06:57 - DB 0: 15 keys (0 volatile) in 16 slots HT.

[7304] 29 Aug 10:06:57 - 1 clients connected (1 slaves), 689788 bytes in use

[7304] 29 Aug 10:07:02 - DB 0: 15 keys (0 volatile) in 16 slots HT.

[7304] 29 Aug 10:07:02 - 1 clients connected (1 slaves), 689788 bytes in use

2 Replication测试

在master存贮一个值,如下

redis 127.0.0.1:6379> SET company  alu
OK
redis 127.0.0.1:6379> GET company alu
(error) ERR wrong number of arguments for ‘get‘ command
redis 127.0.0.1:6379> GET company
"alu"
redis 127.0.0.1:6379>

连接到slave查询,已经自动复制。如下

redis 127.0.0.1:6380> GET  company
"alu"
redis 127.0.0.1:6380> SET  company  asb
OK
redis 127.0.0.1:6380>

slave我这里默认是读写都可以的,一般应该默认是只读的,这个可以再配置文件修改!

读写分离,类似于mysql cluster提供的读写分离,机制是一样的。

时间: 2024-10-26 05:42:51

Redis Master-Slave 读写分离测试的相关文章

Amoeba在Master/Slave结构下的读写分离测试

Amoeba在Master/Slave结构下的读写分离 MySQL主从复制原理图 MySQL使用3个线程来执行复制功能(其中1个在主服务器上,另两个在从服务器上. 当发出START SLAVE时,从服务器创建一个I/O线程,以连接主服务器并让它发送记录在其二进制日志中的语句. 主服务器创建一个线程将二进制日志中的内容发送到从服务器.该线程可以识别为主服务器上SHOW PROCESSLIST的输出中的Binlog Dump线程. 从服务器I/O线程读取主服务器Binlog Dump线程发送的内容并

Redis主从复制(读写分离)

主从复制(读写分离):读在从库读,写在主库写. 主从复制的好处:避免redis单点故障构建读写分离架构,满足读多写少的需求. 主从架构: 操作(启动实例,在一台机器上启动不同的实例,进行伪主从复制):1.复制配置文件,修改配置文件,启动6379,6380,6381三个实例: 2.设置主从在redis中设置主从有两种方式:(1)在redis.conf中设置slaveof(永久)(2)使用redis客户端连接到服务,执行salveod命令(临时) 3.查看主从信息,使用 INFO replicati

Redis Master/Slave 实践

本次我们将模拟 Master(1) + Slave(4) 的场景,并通过ASP.NET WEB API进行数据的提交及查询,监控 Redis Master/Slave 数据分发情况,只大致概述,不会按照step by step的方式一一列举. API List: [POST]:http://localhost:53964/api/personsAccept:application/json ,Content-Type:application/json { "Id": 2, "

mysql-proxy读写分离测试

master:192.168.1.207 slave:192.168.1.208 msyql-proxy:192.168.1.206 主从环境搭建:暂略 mysql-proxy搭建: 一.安装lua wget http://www.lua.org/ftp/lua-5.1.4.tar.gz tar zxvf lua-5.1.4.tar.gz cd lua-5.1.4 #vim src/Makefile 将 CFLAGS= -O2 -Wall $(MYCFLAGS) 修改为 CFLAGS= -O2 

Redis主从实现读写分离

前言 大家在工作中可能会遇到这样的需求,即Redis读写分离,目的是为了压力分散化.下面我将为大家介绍借助AWS的ELB实现读写分离,以写主读从为例. 实现 引用库文件 <!-- redis客户端 --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.6.2</version> &l

Redis主从复制、读写分离

一.Redis的主从复制是什么 主机数据更新后根据配置和策略,自行同步到备机的master/slave机制,Master以写为主,Slave以读为主. 二.Redis的主从复制能干什么 读写分离 容灾备份 三.怎么用 1.配从不配主 2.从库配置:slaveof 主库ip 主库端口(如果当前服务器已经是某台主服务器的从属服务器,那么执行SLAVEOF host port 将使当前服务器停止对旧主服务器的同步,并清除旧的数据集,转而向新的主服务器进行同步) 每次从库和主库断开之后,都需要重新连接,

Redis master/slave,sentinel,Cluster简单总结

现在互联网项目中大量使用了redis,本文著主要分析下redis 单点,master/slave,sentinel模式.cluster的一些特点. 一.单节点模式 单节点实例还是比较简单的,平时做个测试,写个小程序如果需要用到缓存的话还是和方便的,现实生产环境中基本不会使用单节点模式. 二.主从模式(master/slaver)  2.1从模式特点: 主从模式的特点以及自己的一些理解. 主从模式的一个作用是备份数据,这样当一个节点损坏(指不可恢复的硬件损坏)时,数据因为有备份,可以方便恢复. 另

2-18,19 搭建MySQL主从服务器并并通过mysql-proxy实现读写分离

MySQL主从服务器 实现方式: MySQL  REPLICATION Replication可以实现将数据从一台数据库服务器(master)复制到一台或多台数据库服务器(slave) 默认情况下这种情况属于异步复制,无需维持长连接 通过配置,可以复制所有库或者几个库,甚至库中的一些表 它是MySQL内建的,自带 Replication的原理 主服务器master将数据库的改变写入二进制日志文件,从服务器slave同步这些二进制日志,并生成中继日志,从服务器根据中继日志,执行这些改变 DML:S

Mysql-Proxy实现mysql读写分离、负载均衡 (转)

在mysql中实现读写分离.负载均衡,用Mysql-Proxy是很容易的事,不过大型处理对于性能方面还有待提高,主要配置步骤如下: 1.1. mysql-proxy安装 MySQL Proxy就是这么一个中间层代理,简单的说,MySQL Proxy就是一个连接池,负责将前台应用的连接请求转发给后台的数据库,并且通过使用lua脚本,可以实现复杂的连接控制和过滤,从而实现读写分离和负 载平衡.对于应用来说,MySQL Proxy是完全透明的,应用则只需要连接到MySQL Proxy的监听端口即可.当