首页 > 数据库 >第十一章 Redis分布式主从搭建

第十一章 Redis分布式主从搭建

时间:2022-09-19 13:36:46浏览次数:89  
标签:offset Redis 6379 repl master 172.16 主从 backlog 分布式

一、redis主从原理

1.从库配置主从同步
2.从库像主库发起sync命令
3.主库接收sync命令,执行bgsave,生成持久化rdb文件
4.主库将新的数据临时写入缓冲区
5.主库将rdb文件推送至从库
6.从库接收到rdb文件,会清空自己的数据
7.从库读取并导入rdb文件
8.主库将缓冲区的数据也传给从库
9.实现数据同步

二、环境准备

角色 主机 IP 端口
主库 db01 172.16.1.51 6379
从库 db02 172.16.1.52 6379
从库 db03 172.16.1.53 6379

三、配置主从

#1.登陆三台redis
[root@db01 redis]# redis-cli -h 172.16.1.51
172.16.1.51:6379>
[root@db02 redis]# redis-cli -h 172.16.1.52
172.16.1.52:6379>
[root@db03 redis]# redis-cli -h 172.16.1.53
172.16.1.53:6379>

#2.查看主从状态
172.16.1.51:6379> info replication
# Replication
role:master
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

#3.配置主从
172.16.1.52:6379> SLAVEOF 172.16.1.51 6379
OK
172.16.1.53:6379> SLAVEOF 172.16.1.51 6379
OK

#4.再次查看主从状态
#主库
172.16.1.51:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=172.16.1.52,port=6379,state=online,offset=29,lag=0
slave1:ip=172.16.1.53,port=6379,state=online,offset=29,lag=0
master_repl_offset:29
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:28

#从库
172.16.1.52:6379> info replication
# Replication
role:slave
master_host:172.16.1.51
master_port:6379
master_link_status:up
master_last_io_seconds_ago:6
master_sync_in_progress:0
slave_repl_offset:71
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

#5.如果主库有密码
在从库的配置文件中加上
masterauth 123

四、模拟主库故障

[root@db01 redis]# redis-cli shutdown

五、查看从库状态

172.16.1.52:6379> info replication
# Replication
role:slave
master_host:172.16.1.51
master_port:6379
master_link_status:down
master_last_io_seconds_ago:-1
master_sync_in_progress:0
slave_repl_offset:393
master_link_down_since_seconds:63
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
172.16.1.52:6379> set k1 v2
(error) READONLY You can't write against a read only slave.

#从库仍然还是从库,还是只读权限,没有办法提供写服务

六、选择一台机器,取消主从

#取消主从
172.16.1.52:6379> SLAVEOF no one
OK

#再次查看状态
172.16.1.52:6379> info replication
# Replication
role:master
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

七、将其他从库指向新的主库

#重新做主从
172.16.1.53:6379> SLAVEOF 172.16.1.52 6379
OK

172.16.1.53:6379> info replication
# Replication
role:slave
master_host:172.16.1.52
master_port:6379
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_repl_offset:1
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

标签:offset,Redis,6379,repl,master,172.16,主从,backlog,分布式
From: https://www.cnblogs.com/GAO321/p/16707390.html

相关文章

  • 第十二章 Redis高可用-哨兵模式(Sentinel)
    一、Sentinel介绍Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕机了,Redis本身(包括它的很多客户端)都没有实......
  • 第十章 Redis主从复制
    一、Redis集群概述由于单机Redis存储能力受单机限制,以及无法实现读写操作的负载均衡和读写分离,无法保证高可用。本篇就来介绍Redis集群搭建方案及实现原理,实现Redis对数......
  • 第八章 Redis数据持久化之AOF
    一、AOF概述AOF(Append-OnlyFile)记录Redis中每次的写命令,类似mysql中的binlog,服务重启时会重新执行AOF中的命令将数据恢复到内存中,RDB(按策略持久化)持久化方式记录的粒......
  • redis学习笔记
    Redis一、rhel7安装redis6.0.6[[email protected]]#cat/etc/redhat-releaseRedHatEnterpriseLinuxServerrelease7.6(Maipo)1、下载安装包地址:https:......
  • 第七章 Redis数据持久化之RDB
    一、总体介绍1.Redis数据安全问题官网介绍:http://www.redis.io前面我们提到,Redis是一个缓存中间件,它的最大特点是使用内存从而使其性能强悍。但是使用内存的方式有一个......
  • 第六章 Redis新数据类型
    一、Bitmaps1.简介现代计算机用二进制(位)作为信息的基础单位,1个字节等于8位,例如“abc”字符串是由3个字节组成,但实际在计算机存储时将其用二进制表示,“abc”分别对应......
  • 第四章 Redis-6.0版本配置文件详解
    一、Units单位#如果要配置跟内存大小相关的参数是可以这样配置,只支持bytes,不支持bit,这些单位都是大小写不敏感的:#1k=>1000bytes#1kb=>1024bytes#1m=>10......
  • 雪花算法分布式Id以及其产生的前端精度损失解决方法
    一.分布式id#特点:#1.全局唯一性:全局没有重复的id标识。2.递增性:保证生成的id在业务中是递增的。3.高可用:确保在任何时候都能生成正确可用的id。4.高并发:在高并发......
  • 第二章 Redis-6.0概述安装
    一.缓存数据库的概念传统的数据库管理系统把所有数据都放在磁盘上进行管理,所以称做磁盘数据库(DRDB:Disk-ResidentDatabase)。磁盘数据库需要频繁地访问磁盘来进行数据的操......
  • Redis作为缓存和作为数据库的区别
    Redis又被叫做Nosql,非关系型数据库,由于Redis作用于内存上,所以又可以被当作是缓存,那么Redis当作缓存和数据库的区别就是:技术服务于业务逻辑,所以,选择Redis作为什么,还是要根......