Redis集群_主从复制

Redis集群基本概念

  • 在实际项目中,一般不会只在一台机器上部署redis服务器,因为单台redis服务器不能满足高并发的压力,另外如果该服务器或者redis失效,整个系统就可能崩溃
  • 项目里一般会用主从复制的模式来提升性能,用集群模式来提升吞吐量并提升可用性

基于主从复制模式的集群

  • 在出从复制模式的集群里,主节点一般是一个,从节点一般是两个或者多个,写入主节点的数据会被复制到从节点上,这样一旦主节点出现故障,应用系统就能切换到从节点去读写数据,从而提升系统的可用性
  • 在采用主从复制模式里默认的读写分离机制,就能提升系统的缓存读写性能
  • 在实际应用中,如果有相应的设置,在向一台redis服务器里写数据后,这个数据可以复制到另一台(或多台)redis服务器,这里数据源叫主服务器(master),复制数据目的地的服务器叫从服务器(slave)

主从复制模式的优势

  • 可以把写操作集中到主服务器上,读操作集中到从服务器上,提升读写性能
  • 由于出现了数据备份,因此能提升数据的安全性

在这里插入图片描述

主从复制模式集群实操

1.用命令搭建主从集群

这里用docker容器搭建一主二从的集群,在配置主从关系时,需要在从节点上使用slaveof命令

1.1创建主节点
docker run -itd --name redis-master -p 6379:6379 redis:latest
1.2创建从节点

这里因为在一台机器上,所以需要配置不同的端口

docker run -itd --name redis-slave1 -p 6380:6380 redis:latest

获取容器的ip

docker inspect redis-master|grep IPAddress
[root@localhost ~]# docker inspect redis-master|grep IPAddress
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.2",
                    "IPAddress": "172.17.0.2",

进入主节点容器

docker exec -it redis-master /bin/bash

连接redis

redis-cli

查看主从关系

127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:0
master_failover_state:no-failover
master_replid:dfbc81120a9de962ff09133c757d50239238955a
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

进入从节点

docker exec -it redis-slave1 /bin/bash

连接redis

redis-cli

使用slaveof配置从属关系

这里的ip 端口就是主节点的ip 端口

127.0.0.1:6379> slaveof 172.17.0.2 6379
OK

查看主从关系

在这里插入图片描述

另一个从节点和以上操作一样,注意端口

2.通过配置搭建主从集群

创建主节点容器

docker run -itd --name redis-master -p 6379:6379 redis:latest

准备redis-slave1和redis-slave2配置文件

在这里插入图片描述

其中主要的配置是:

slaveof 127.12.0.2 6379

创建从节点一的容器

docker run -itd --name redis-slave1 -v /root/redis/redis-slave1/redis.conf:/redisConfig/redisSlave1.conf -p 6380:6380 redis:latest redis-server /redisConfig/redisSlave1.conf

进入从节点一容器

docker exec -it redis-slave1 /bin/bash

连接redis并查看从属关系

root@f4cfaf03ffec:/data# redis-cli
127.0.0.1:6379> info replication
# Replication
role:slave
master_host:172.17.0.2
master_port:6379
master_link_status:up
master_last_io_seconds_ago:3
master_sync_in_progress:0
slave_repl_offset:266
slave_priority:100
slave_read_only:1
connected_slaves:0
master_failover_state:no-failover
master_replid:1a8171720b8f1ebeb04c72020a2f05152f92006b
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:266
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:266

从节点二创建也和上面类似,注意端口和配置即可

3.测试

在主节点上创建几个值

在这里插入图片描述

连接从节点进行查询

127.0.0.1:6379> get name
"yohoo"
127.0.0.1:6379> get age
"26"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值