Redis主从复制搭建

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: Redis主从复制搭建

Redis主从复制简介


Redis主从复制指的是一台Redis数据库,后面挂多个从库,我们将从2方便来讲述Redis主从复制: 1. 从而实现数据备份 2.读写分离等。


Redis主从架构抽象出来如下:

image.png

即1个主库可以挂N多个从库。

Redis主从复制优点


数据备份

这里指的数据备份有2个,第一个是我们想拷贝主库至某个地方,第二个是单纯的数据备份。前者若不想执行bgsave而后拷贝rdb,则可以尝试一下使用主从复制拷贝,效率很高且不复杂。后者则作为Redis备份使用。


读写分离

每个数据库都有自身的瓶颈,虽然Redis是基于内存实现的,但是它依旧有瓶颈,例如我们在各大云平台购买的单机版Redis,其qps基本在10w内是稳定的,若超过该值,且又不想做集群的话,可以尝试下Redis做主从,从而进行读写分离,降低其qps



配置Redis主从复制


话说的很多,我们如何来构建Redis主从复制呢,我们来搭建一下,我们先准备2个Redis,信息如下:

主机 端口 密码 角色
127.0.0.1 6379 主库
127.0.0.1 7380 从库


根据如上信息,我们增加2个配置。


Redis1

[root@pdudo ~]# cat redis-6379.conf 
bind 127.0.0.1
port 6379
daemonize yes
[root@pdudo ~]#


Redis2

# cat redis-6380.conf 
bind 127.0.0.1
port 6380
daemonize yes
[root@pdudo ~]#


有些小伙伴很好奇,我们Redis配置这么一点配置就够了? 非也,而是Redis有很多默认配置。我们若是没有指定,就使用的默认配置。


如上我们的配置稍微解释下 bind是监听哪块网卡,port是指定服务器端口,而daemonize是允许在后台运行。


启动Redis

redis-server redis-6379.conf
redis-server redis-6380.conf

从库如何连接主库


在从库执行SLAVEOF即可。

127.0.0.1:6380> SLAVEOF 127.0.0.1 6379
OK
127.0.0.1:6380>

这样就连接上了主库,我们可以使用info查看下,没错,主从复制就这样结束了。



验证主从复制

redis中,我们都可以使用info replication查看主从复制情况。


主库执行info

127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:1
slave0:ip=127.0.0.1,port=6380,state=online,offset=267,lag=1
...
127.0.0.1:6379>


从库执行info

127.0.0.1:6380> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6379
...
127.0.0.1:6380>

我们可以看到,在响应的模式前面,有role 做了标记,是主还是从。 如上即设置了一个最简单的主从架构,我们插入数据后也正常。



总结


这里有个点要注意一下,这也是我们后面要讲的主从复制原理,这里提前提及一下,避免有大佬翻车了就不好了: 若2个Redis做主从复制,那么作为从库而言,它在连接上主库后,会清掉自身所有的数据,这是非常危险的,我们在操作的时候,尤其要注意,对生产环境要有敬畏之心,不要搞崩了,那就只要跑路了。


还有一点也是做运维的小知识点,分享给大家,任何一个技术/开源软件,大家在搭建的时候,没必要先了解原理,先把服务搭建起来,而后再看原理,会清晰的多。总结一点就是,想得多,不如做得多,实践出真章。




相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
7月前
|
存储 负载均衡 NoSQL
Redis之主从复制
【1月更文挑战第8天】主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(masterleader),后者称为从节点(slave/follower);数据的复制是单向的,只能由主节点到从节点。Master以写为主,Slave以读为主。 默认情况下,每台Redis服务器都是主节点; 且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。
214 9
|
7月前
|
NoSQL 关系型数据库 MySQL
Redis高可用之主从复制架构(第一部分)
Redis高可用之主从复制架构(第一部分)
|
7月前
|
监控 NoSQL 容灾
【Redis】主从复制
【Redis】主从复制
|
5月前
|
存储 缓存 NoSQL
Redis常见面试题(二):redis分布式锁、redisson、主从一致性、Redlock红锁;Redis集群、主从复制,哨兵模式,分片集群;Redis为什么这么快,I/O多路复用模型
redis分布式锁、redisson、可重入、主从一致性、WatchDog、Redlock红锁、zookeeper;Redis集群、主从复制,全量同步、增量同步;哨兵,分片集群,Redis为什么这么快,I/O多路复用模型——用户空间和内核空间、阻塞IO、非阻塞IO、IO多路复用,Redis网络模型
Redis常见面试题(二):redis分布式锁、redisson、主从一致性、Redlock红锁;Redis集群、主从复制,哨兵模式,分片集群;Redis为什么这么快,I/O多路复用模型
|
2月前
|
存储 NoSQL 大数据
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
35 3
|
7月前
|
存储 监控 负载均衡
redis 集群 (主从复制 哨兵模式 cluster)
redis 集群 (主从复制 哨兵模式 cluster)
|
3月前
|
NoSQL 网络协议 Redis
Redis的主从复制和哨兵模式
本文详细介绍了Redis的主从复制配置、原理(包括全量复制和增量复制)以及如何搭建一主二从的Redis集群,同时还探讨了Redis哨兵模式的概念、配置文件、以及如何配置一主二从三哨兵的Redis哨兵模式,以实现高可用性。
|
4月前
|
消息中间件 存储 缓存
深入理解Redis集群主从复制原理
该文章主要探讨了Redis集群中的主从复制原理,包括为何需要主从复制、配置方法、复制流程以及一些高级特性。
深入理解Redis集群主从复制原理
|
5月前
|
NoSQL Redis
Redis 主从复制架构配置及原理
Redis 主从复制架构配置及原理
67 5
|
6月前
|
存储 NoSQL 网络协议
主从复制,Could not connect to Redis at 127.0.0.1:6380: Connection refusednot connected> exit,1.主从模式如何指
主从复制,Could not connect to Redis at 127.0.0.1:6380: Connection refusednot connected> exit,1.主从模式如何指
下一篇
无影云桌面