单机模拟主从复制(一主三从)

本文涉及的产品
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 单机模拟主从复制(一主三从)

引言

操作系统环境:Ubuntu 20.04

Redis版本:6.2.8

准备工作

官网下载 当前最新版本是7.0,我这里用的是6.0,下载 redis-6.2.8.tar.gz,拷贝到自己的虚拟机或者云服务器。

tar -zxvf redis-6.2.8.tar.gz 解压

cd redis-6.2.8

make && make install (注意是root权限)

目标

同一机器我们需要用端口来区分不同的服务器,模拟一主三从,其中:

127.0.0.0:6379 为主服务器,6380、6381、6382为从服务器。

掌握了单机模拟的情况,不同的机器只是修改不同的ip或者端口即可,举一反三 。

一、创建redis_master_slave文件夹

mkdir redis_master_slave

1.1 准备配置文件

cp redis.conf ./redis_master_slave/redis_6379.conf

cp redis.conf ./redis_master_slave/redis_6380.conf

cp redis.conf ./redis_master_slave/redis_6381.conf

cp redis.conf ./redis_master_slave/redis_6382.conf

1.2 修改配置文件
1.2.1 主服务器配置文件

vi redis_master_slave/redis_6379.conf

daemonize yes       #开启保护进程
pidfile /var/run/redis-server_6379.pid
logfile /var/run/redis-server_6379.log
dbfilename dump_6379.rdb
protected-mode  no 
# bind 192.168.60.69 #绑定的IP (一台模拟主机就是127.0.0.1)
requirepass 123456  #设置密码,主从密码设置一样
1.2.2 从服务器配置文件(以6380为例)
port 6380
#开启保护进程
daemonize yes       
pidfile /var/run/redis-server_6380.pid
logfile /var/run/redis-server_6380.log
dbfilename dump6380.rdb
# 进行主从复制。
protected-mode  no  
# bind 192.168.60.69 #绑定的IP (一台模拟主机就是127.0.0.1)
#设置密码,主从密码设置一样
requirepass  123456 
#主redis的密码
masterauth     123456   
#设置复制的主服务的IP 主端口
slaveof            127.0.0.1  6379    

1.3 启动redis服务

进入到src目录,注意,目录不能错。

cd src
sudo ./redis-server ../redis_master_slave/redis_6379.conf
sudo ./redis-server ../redis_master_slave/redis_6380.conf
sudo ./redis-server ../redis_master_slave/redis_6381.conf
sudo ./redis-server ../redis_master_slave/redis_6382.conf

1.4 开启四个客户端终端

redis-cli -h 127.0.0.1 -p 6379

redis-cli -h 127.0.0.1 -p 6380

redis-cli -h 127.0.0.1 -p 6381

redis-cli -h 127.0.0.1 -p 6382

1.5 效果展示

在主服务器输入:info replication,就能查看该主服务器,当前的从服务器的信息。

127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379>set teacher mark
OK
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:3
slave0:ip=127.0.0.1,port=6380,state=online,offset=388,lag=0
slave1:ip=127.0.0.1,port=6381,state=online,offset=388,lag=1
slave2:ip=127.0.0.1,port=6382,state=online,offset=388,lag=0
master_failover_state:no-failover
master_replid:f6b5d34c40acba4f077ef518d468fb24bdaa56b6
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:388
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:388
127.0.0.1:6379> set teacher lwang
OK
127.0.0.1:6379>

注意:

设置了密码,进入到客户端终端,需要先auth + 密码,进行登录,否则会提示 NOAUTH Authentication required,没有权限。

登录后,我们在主服务器添加数据,在任意一个从服务器就能读取到对应的数据。从服务对数据没有修改权限,只能读。也就是读写分离,写操作只能在主服务器上,当然,主服务器也能读取数据。


推荐一个零声学院免费教程,个人觉得老师讲得不错,分享给大家:[Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,点击立即学习:

相关实践学习
基于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
相关文章
|
SQL
记一次不常见到主从延迟问题
Slave_SQL_Running_State: Waiting for dependent transaction to commit 导致的主从延迟
7449 1
|
2月前
|
SQL 负载均衡 关系型数据库
分布式篇问题之MySQL数据库主从复制问题如何解决
分布式篇问题之MySQL数据库主从复制问题如何解决
|
4月前
|
监控 NoSQL 算法
Redis集群模式:高可用性与性能的完美结合!
小米探讨Redis集群模式,通过一致性哈希分散负载,主从节点确保高可用性。节点间健康检测、主备切换、数据复制与同步、分区策略和Majority选举机制保证服务可靠性。适合高可用性及性能需求场景,哨兵模式则适用于简单需求。一起学习技术的乐趣!关注小米微信公众号“软件求生”获取更多内容。
259 11
Redis集群模式:高可用性与性能的完美结合!
|
4月前
|
SQL canal 运维
MySQL高可用架构探秘:主从复制剖析、切换策略、延迟优化与架构选型
MySQL高可用架构探秘:主从复制剖析、切换策略、延迟优化与架构选型
|
存储 负载均衡 NoSQL
Redis主从集群:提升性能和可靠性的利器
本文将介绍Redis主从集群的概念、工作原理以及它如何提升系统性能和可靠性。通过使用Redis主从集群,我们可以实现数据的分布式存储和负载均衡,同时提高系统的可扩展性和容错能力。
153 0
|
SQL 缓存 算法
主从不一致解决方案 && 如何降低主从延迟
主从不一致解决方案 && 如何降低主从延迟
主从不一致解决方案 && 如何降低主从延迟
|
SQL 存储 容灾
关于主从延迟,一篇文章给你讲明白了!
在实际的生产环境中,由单台MySQL作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面 因此,一般来说都是通过集群主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy)来提升数据库的并发负载能力进行部署与实施总结MySQL主从集群带来的作用是:提高数据库负载能力,主库执行读写任务(增删改),备库仅做查询。提高系统读写性能、可扩展性和高可用性。数据备份与容灾,备库在异地,主库不存在了,备库可以立即接管,无须恢复时间。用于记录数据库执行的写入性操作(不包括查询)信息,以二进制的形式保存在磁盘中。可以简单理解为记录的就是sq
1240 0
|
SQL 存储 运维
MySQL主从复制与读写分离(详细部署案例)
MySQL主从复制与读写分离(详细部署案例)
274 0
|
存储 缓存 运维
【高并发/高可用/哨兵机制/集群模式/高可用与主备切换/主从复制/断点续传】
【高并发/高可用/哨兵机制/集群模式/高可用与主备切换/主从复制/断点续传】
178 0
【高并发/高可用/哨兵机制/集群模式/高可用与主备切换/主从复制/断点续传】
|
存储 缓存 运维
【Redis集群原理专题】介绍一下常用的Redis集群机制方案的介绍和分析
【Redis集群原理专题】介绍一下常用的Redis集群机制方案的介绍和分析
171 0
【Redis集群原理专题】介绍一下常用的Redis集群机制方案的介绍和分析