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

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容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
相关文章
|
2月前
|
SQL 存储 关系型数据库
关于主从延迟,一篇文章给你讲明白了!
关于主从延迟,一篇文章给你讲明白了!
|
4月前
|
消息中间件 存储 缓存
深入理解Redis集群主从复制原理
该文章主要探讨了Redis集群中的主从复制原理,包括为何需要主从复制、配置方法、复制流程以及一些高级特性。
深入理解Redis集群主从复制原理
|
5月前
|
SQL 负载均衡 关系型数据库
分布式篇问题之MySQL数据库主从复制问题如何解决
分布式篇问题之MySQL数据库主从复制问题如何解决
|
7月前
|
监控 NoSQL 算法
Redis集群模式:高可用性与性能的完美结合!
小米探讨Redis集群模式,通过一致性哈希分散负载,主从节点确保高可用性。节点间健康检测、主备切换、数据复制与同步、分区策略和Majority选举机制保证服务可靠性。适合高可用性及性能需求场景,哨兵模式则适用于简单需求。一起学习技术的乐趣!关注小米微信公众号“软件求生”获取更多内容。
343 11
Redis集群模式:高可用性与性能的完美结合!
|
7月前
|
监控 NoSQL Redis
Redis分区容错秘诀:解密主从模式
Redis主从模式用于提高高可用性、负载均衡和数据备份。主节点处理写入,从节点复制数据并分担读取,实现故障切换和读写分离。配置主从关系后,从节点连接主节点进行全量和增量复制。当主节点故障,从节点可接管服务。然而,主从延迟和数据不一致性是挑战,可通过优化网络、使用Sentinel和Redis Cluster等解决。关注“软件求生”获取更多内容。
207 1
Redis分区容错秘诀:解密主从模式
|
7月前
|
NoSQL 关系型数据库 MySQL
单机模拟集群(三主两从)
单机模拟集群(三主两从)
|
SQL canal 缓存
主从复制原理
MySQL binlog(binary log 即二进制日志文件) 主要记录了 MySQL 数据库中数据的所有变化(数据库执行的所有 DDL 和 DML 语句)。因此,我们根据主库的 MySQL binlog 日志就能够将主库的数据同步到从库中
68 0
主从复制原理
|
存储 负载均衡 NoSQL
Redis主从集群:提升性能和可靠性的利器
本文将介绍Redis主从集群的概念、工作原理以及它如何提升系统性能和可靠性。通过使用Redis主从集群,我们可以实现数据的分布式存储和负载均衡,同时提高系统的可扩展性和容错能力。
186 0
|
SQL 缓存 算法
主从不一致解决方案 && 如何降低主从延迟
主从不一致解决方案 && 如何降低主从延迟
主从不一致解决方案 && 如何降低主从延迟
|
SQL 负载均衡 前端开发
案例:MySQL主从复制与读写分离
案例:MySQL主从复制与读写分离
120 0

热门文章

最新文章