Redis主从结构搭建

本次搭建中使用三个节点,采用一主多从的模式

节点名称 主机名 端口号 角色 配置 配置方式
主节点 127.0.0.1 7003 主节点 7003.conf
从节点1 127.0.0.1 7001 从节点 7001.conf conf文件配置
从节点2 127.0.0.1 7002 从节点 7002.conf

手动配置

 redis主从结构图

Redis主从结构搭建_第1张图片

 

1. 准备三个conf文件, 分别放在7001/7002/7003目录下, 名为7001.conf/7002.conf/7003.conf。文件配置如下(以7002.conf为例)

daemonize yes
# 关闭保护模式
protected-mode no
# 注释以下内容开启远程访问
# bind 127.0.0.1
# 修改启动端口为7002
port 7002
# 修改pidfile指向路径
pidfile /home/liuyunfeng/RedisTest/7002/redis_7002.pid

2.分别启动7002/7003

redis-server 7002/7002.conf 
redis-server 7003/7003.conf 

启动后检查进程信息

ps -ef | grep redis

 结果如下

liuyunf+  5439  2133  0 17:42 ?        00:00:03 redis-server *:7002
liuyunf+  5444  2133  0 17:42 ?        00:00:04 redis-server *:7003

进入redis

redis-cli -h 127.0.0.1 -p 7002
redis-cli -h 127.0.0.1 -p 7003

 以7002为例查看redis主从信息, 此时所有节点都为主节点(还未配置主从信息)。

127.0.0.1:7002> info replication
# Replication
role:master
connected_slaves:0
master_replid:8c9350dfb990982e9c76c2b3c264719ca7573135
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

3. 配置主从信息以7002为例

127.0.0.1:7002> slaveof 127.0.0.1 7003
OK

配置成功, 查看此时的主从信息, 此时已经将7003配置为主节点,当前节点角色为slave,master为7003

127.0.0.1:7002> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:7003
master_link_status:up
master_last_io_seconds_ago:4
master_sync_in_progress:0
slave_repl_offset:3765
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:27da9fb6aa58aa604a9adc9fb55cec4c4a0b857f
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:3765
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:3696
repl_backlog_histlen:70

进入7003查看主从信息

127.0.0.1:7003> info replication
# Replication
role:master
connected_slaves:1
slave0:ip=127.0.0.1,port=7002,state=online,offset=4185,lag=0
master_replid:27da9fb6aa58aa604a9adc9fb55cec4c4a0b857f
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:4185
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:4185

4.采用conf文件配置的方式配置主从信息

daemonize yes
# 关闭保护模式
protected-mode no
# 注释以下内容开启远程访问
# bind 127.0.0.1
# 修改启动端口为6379
port 7001
# 修改pidfile指向路径
pidfile /home/liuyunfeng/RedisTest/7001/redis_7001.pid
#  添加主从信息, 以7003作为当前节点的主节点
slaveof 127.0.0.1 7003

启动7001后查看7001主从信息与7002一样,查看7003主从信息如下

127.0.0.1:7003> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=127.0.0.1,port=7002,state=online,offset=4689,lag=0
slave1:ip=127.0.0.1,port=7001,state=online,offset=4689,lag=1
master_replid:27da9fb6aa58aa604a9adc9fb55cec4c4a0b857f
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:4689
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:4689

5.测试主从信息数据读写

        1).在主节点读写信息, 成功

127.0.0.1:7003> set owner liuyunfeng
OK
127.0.0.1:7003> get owner
"liuyunfeng"

        2).在从节点读写信息,可以读取, 但不能写入

127.0.0.1:7002> get owner
"liuyunfeng"
127.0.0.1:7002> set owner2 test
(error) READONLY You can't write against a read only slave.

你可能感兴趣的:(redis)