redis主从复制-一主二仆

2024-03-21 13:59

本文主要是介绍redis主从复制-一主二仆,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

主从复制

本文适用于尚硅谷redis课程,来源自https://www.bilibili.com/video/BV1Rv41177Af?p=32
的第32p,视频中的是无密码版本,我这个是有密码版本,在实验中遇到了一些问题,特此整理出来供大家参考。
😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀

实验前须知:
① 我当前电脑的redis配置文件的路径为 /etc/redis.conf
② 当前我的redis设置了密码,密码为123456.csz
③ 要了解工作路径的问题,确保每次自己进入的路径正确
④ 确保自己的redis.conf配置文件已更改为以下内容
# 允许任何主机连接、访问
bind 127.0.0.1 改为 bind 0.0.0.0# 关闭保护模式
protected-mode yes 改为 protected-mode no# 允许启动后在后台运行,即关闭命令行窗口后仍能运行
daemonize no 改为 daemonize yes

常用命令

mkdir /folder  新建文件夹
cd /folder 进入某一文件夹
vim filename 编辑某一文件
ps -ef | grep redis  查看redis进程
kill -9 进程id    强杀某一进程
redis-server redis6381.conf  按照指定配置文件启动redis
redis-cli -p 6381 -a 123456.csz  redis有密码方式启动客户端
redis-cli -p 6379    redis无密码方式启动客户端
info replication  查看redis主机运行情况(在redis-cli客户端里使用)
第一步:创建文件夹/myredis

当前工作目录:/root

mkdir /myredis
第二步:把/etc/redis.conf配置文件复制到/myredis,复制后文件名叫redis.conf

你必须有一个redis.conf文件,你得知道你的redis.conf的配置文件在哪

cp /etc/redis.conf /myredis/redis.conf
第三步:在/myredis中创建三个配置文件
vi /myredis/redis6379.conf
vi /myredis/redis6380.conf
vi /myredis/redis6381.conf

复制以下内容到三个配置文件中,并改动每一个6379为6380,6381

include /myredis/redis.conf
pidfile /var/run/redis_6379.pid
port 6379
dbfilename dump6379.rdb

如果是有设置redis密码的情况下:要在从机的配置文件(redis6380.conf,redis6381.conf)下加入一行(两台从机都要):pass是你自己的密码

masterauth password

如下图:

在这里插入图片描述

第四步:按照这三个配置文件启动三个redis
redis-server /myredis/redis6379.conf
redis-server /myredis/redis6380.conf
redis-server /myredis/redis6381.conf

查看进程是否创建:

ps -ef | grep redis

进程正确启动,如下

root     29853     1  0 21:27 ?        00:00:00 redis-server *:6379
root     29883     1  0 21:27 ?        00:00:00 redis-server *:6380
root     29919     1  0 21:27 ?        00:00:00 redis-server *:6381
root     29979   489  0 21:27 pts/0    00:00:00 grep --color=auto redis
第五步:进入redis-cli客户端,查看三台主机运行情况

① 有密码情况:

redis-cli -p 6381 -a 123456.csz 

② 无密码情况:

redis-cli -p 6379

查看三台主机运行情况

info replication

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

此时三台主机的身份都是master

第六步:将6380、6381配置成从服务器

要先进入6380和6381的redis客户端,然后执行以下命令

slaveof 127.0.0.1 6379

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如图,可以看到6379端口的主机下有两台从机,role角色为master,代表主机

6380端口下,role是slave,代表是从机1,它连接的主机(ip:127.0.0.1,端口:6379)

6381端口下,role是slave,代表是从机2,它连接的主机(ip:127.0.0.1,端口:6379)

第七步:测试

测试内容:
① 在主机写入,主机读取,从机读取。

​② 从机写入

在这里插入图片描述
在这里插入图片描述
结论:主机可读可写,从机只读不写

② 关闭主机,看从机能否读取数据。重启主机,看是否一致
在这里插入图片描述
在这里插入图片描述
结论:主机挂掉,从机依旧。重启主机,恢复如初。

③ 从机挂掉,重启之后需要重新设置
(如果是在从机配置文件中配置了masterauth password,就无须执行这一步,从机重启后恢复如初)

slaveof 127.0.0.1 6379

③ 从机挂掉,重启之后需要重新设置(如果是在从机配置文件中配置了masterauth password,就无须执行下一步,从机重启后恢复如初)

slaveof 127.0.0.1 6379

😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊
如果有帮助到大家,麻烦大家给个赞👍。

这篇关于redis主从复制-一主二仆的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/832823

相关文章

Redis实现分布式锁全解析之从原理到实践过程

《Redis实现分布式锁全解析之从原理到实践过程》:本文主要介绍Redis实现分布式锁全解析之从原理到实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、背景介绍二、解决方案(一)使用 SETNX 命令(二)设置锁的过期时间(三)解决锁的误删问题(四)Re

一文带你搞懂Redis Stream的6种消息处理模式

《一文带你搞懂RedisStream的6种消息处理模式》Redis5.0版本引入的Stream数据类型,为Redis生态带来了强大而灵活的消息队列功能,本文将为大家详细介绍RedisStream的6... 目录1. 简单消费模式(Simple Consumption)基本概念核心命令实现示例使用场景优缺点2

Redis中6种缓存更新策略详解

《Redis中6种缓存更新策略详解》Redis作为一款高性能的内存数据库,已经成为缓存层的首选解决方案,然而,使用缓存时最大的挑战在于保证缓存数据与底层数据源的一致性,本文将介绍Redis中6种缓存更... 目录引言策略一:Cache-Aside(旁路缓存)策略工作原理代码示例优缺点分析适用场景策略二:Re

redis中使用lua脚本的原理与基本使用详解

《redis中使用lua脚本的原理与基本使用详解》在Redis中使用Lua脚本可以实现原子性操作、减少网络开销以及提高执行效率,下面小编就来和大家详细介绍一下在redis中使用lua脚本的原理... 目录Redis 执行 Lua 脚本的原理基本使用方法使用EVAL命令执行 Lua 脚本使用EVALSHA命令

Redis 热 key 和大 key 问题小结

《Redis热key和大key问题小结》:本文主要介绍Redis热key和大key问题小结,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、什么是 Redis 热 key?热 key(Hot Key)定义: 热 key 常见表现:热 key 的风险:二、

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式

Redis Pipeline(管道) 详解

《RedisPipeline(管道)详解》Pipeline管道是Redis提供的一种批量执行命令的机制,通过将多个命令一次性发送到服务器并统一接收响应,减少网络往返次数(RTT),显著提升执行效率... 目录Redis Pipeline 详解1. Pipeline 的核心概念2. 工作原理与性能提升3. 核

redis过期key的删除策略介绍

《redis过期key的删除策略介绍》:本文主要介绍redis过期key的删除策略,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录第一种策略:被动删除第二种策略:定期删除第三种策略:强制删除关于big key的清理UNLINK命令FLUSHALL/FLUSHDB命

Redis消息队列实现异步秒杀功能

《Redis消息队列实现异步秒杀功能》在高并发场景下,为了提高秒杀业务的性能,可将部分工作交给Redis处理,并通过异步方式执行,Redis提供了多种数据结构来实现消息队列,总结三种,本文详细介绍Re... 目录1 Redis消息队列1.1 List 结构1.2 Pub/Sub 模式1.3 Stream 结

SpringBoot中配置Redis连接池的完整指南

《SpringBoot中配置Redis连接池的完整指南》这篇文章主要为大家详细介绍了SpringBoot中配置Redis连接池的完整指南,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以... 目录一、添加依赖二、配置 Redis 连接池三、测试 Redis 操作四、完整示例代码(一)pom.