redis教程

redis 命令,redis入门指南,redis 安装,redis教程,redis视频教程,redis pdf电子书下载,redis免费视频教程,redis视频教程下载

redis主从复制(读写分离)-redis集群管理

2016-07-18| 发布: | 浏览: 1275 |保存PDF

主从复制的好处:
1、 避免redis单点故障
2、 构建读写分离架构,满足读多写少的应用场景


主从架构




[root@master redis]# mkdir redis-master-slave

创建6380、6381、6382三个目录,分别将安装目录下的redis.conf拷贝到这三个目录下(我直接从单机安装那里拷贝过来,因为我那里已人改过daemonize了)
[root@master redis]# cd redis-master-slave/
[root@master redis-master-slave]# mkdir 6380
[root@master redis-master-slave]# mkdir 6381
[root@master redis-master-slave]# mkdir 6382


[root@master redis-master-slave]# cp /opt/redis/redis-single/redis.conf 6380/

[root@master redis-master-slave]# cp /opt/redis/redis-single/redis.conf 6381/
[root@master redis-master-slave]# cp /opt/redis/redis-single/redis.conf 6382/


分别进入这三个目录,修改配置文件redis.conf,将端口分别设置为:6380(Master)、6381(Slave)、6382(Slave)。同时要设置pidfile文件为不同的路径。

以6380为例:
[root@master redis-master-slave]# vim 6380/redis.conf
......
port 6380
......
pidfile /var/run/redis_6380.pid
......


设置主从关系

在redis中设置主从有2种方式:
1、 在redis.conf中设置slaveof
a) slaveof <masterip> <masterport>
2、 使用redis-cli客户端连接到redis服务,执行slaveof命令
a) slaveof <masterip> <masterport>
第2种方式在重启后将失去主从复制关系。


本测试中使用第1种方式

[root@master redis-master-slave]# vim 6381/redis.conf
slaveof 127.0.0.1 6380
[root@master redis-master-slave]# vim 6382/redis.conf
slaveof 127.0.0.1 6380


分别启动三个redis实例:

[root@master redis-master-slave]# /usr/local/bin/redis-server /opt/redis/redis-master-slave/6380/redis.conf
[root@master redis-master-slave]# /usr/local/bin/redis-server /opt/redis/redis-master-slave/6381/redis.conf
[root@master redis-master-slave]# /usr/local/bin/redis-server /opt/redis/redis-master-slave/6382/redis.conf


查看路由信息

在主节点查
[root@master hadoop]# /usr/local/bin/redis-cli -p 6380
127.0.0.1:6380> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=127.0.0.1,port=6381,state=online,offset=1,lag=1
slave1:ip=127.0.0.1,port=6382,state=online,offset=1,lag=1
master_repl_offset:1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:0


在从节点查

[root@master hadoop]# /usr/local/bin/redis-cli -p 6381
127.0.0.1:6381> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6380
master_link_status:up
master_last_io_seconds_ago:10
master_sync_in_progress:0
slave_repl_offset:141
slave_priority:100
slave_read_only:1
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


[root@master hadoop]# /usr/local/bin/redis-cli -p 6382

127.0.0.1:6382> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6380
master_link_status:up
master_last_io_seconds_ago:4
master_sync_in_progress:0
slave_repl_offset:155
slave_priority:100
slave_read_only:1
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


测试主从

在主库写入数据
127.0.0.1:6380> set k1 123
OK
127.0.0.1:6380> get k1
"123"


在从库读取数据

127.0.0.1:6381> get k1
"123"
127.0.0.1:6382> get k1
"123"


书生参考网络整理


系列教程

大家都在看

热门访问