首页 > 代码库 > Redis Master-Slave 读写分离测试

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提供的读写分离,机制是一样的。

Redis Master-Slave 读写分离测试