3 - 主从复制结构|持久化|数据类型

主从复制结构|持久化|数据类型

  • 主从复制 没有高可用功能
    • 命令行配置
    • 修改配置文件(永久有效,重启了redis服务依然有效)
  • 配置带验证的主从复制
  • 主从从配置
  • 哨兵服务(可实现高可用)
  • 持久化
    • RDB文件的使用
    • AOF文件的使用
  • 数据类型

主从复制 没有高可用功能

Redis服务的主从复制(与mysql服务功能一样,都是实现数据自动同步的存储结构)
主服务器:接收客户端连接
从服务器:连接主服务器同步数据
主从复制结构模式:一主一从 一主多从 主从从 主坏了 从顶不上去 需要借助软件
全量同步 覆盖原始数据
在这里插入图片描述

说明:redis服务运行后,默认角色都是master 所以一台主机做master服务器的话,无需配置。主从结构中的从服务器都是只读的,客户端连接从服务器对数据仅有查询权限

redis-cli -h 192.168.4.51 -p 6379
> info replication

在这里插入图片描述

命令行配置

# 马上生效 但不是永久 适合配置线上服务器
> info replication #  查看服务器信息
> slaveof 主服务器ip地址 主服务器端口号 # 指定主服务器ip地址和服务器端口号
> slaveof no one  # 临时恢复为主服务器

修改配置文件(永久有效,重启了redis服务依然有效)

]# vim /etc/redis/6379.conf
slaveof 主服务器ip地址  主服务器端口号
:wq

在这里插入图片描述

配置带验证的主从复制

主从结构中的master服务器Redis服务设置了连接密码,slave服务器要指定连接密码才能正常同步master主机数据
需求:给主从从结构中的master服务器的redis服务设置连接密码 slave服务器配置连接master服务服务器密码

# 第一步 给Redis服务器51设置连接密码123456
> config get requirepass
> config set requirepass 123456
> config rewrite
# 第二步 给redis服务器52设置master51密码 并设置本机连接密码
redis-cli -h ..52 -p 6379
> config get requirepass
> config set requirepass 123456
> config rewrite
> config get masterauth # 获取主服务器的连接项
> config set masterauth 123456 # 设置主服务器的连接密码
> config rewrite
# 第三步 在redis服务器53设置连接master服务器 52的连接密码
> config set masterauth 123456 # 设置主服务器的连接密码
> config rewrite

主从从配置

在host53主机做如下配置

第一步 把一主多从结构中的53主机恢复为独立的数据库服务器
> slaveof no one 
第二步 把53配置为52主机的slave服务器
> slaveof 192.168.4.52 6379

哨兵服务(可实现高可用)

监视主从复制结构中的主服务器,发现主服务器无法连接后,会把对应的从升级为主服务器数据库,继续监视新的主数据库服务器 坏掉的主数据库服务器恢复后 会自动做当前主服务器的从服务器

哨兵服务+redis主从服务 能够实现redis服务高可用和数据自动备份,当远比Redis 集群的资本和运维成本要低

说明:

  1. 可以使用一主一从 或 一主多从 或 主从从 + 哨兵服务 做服务的高可用和数据自动备份
  2. 如果主从结构中的redis服务设置连接密码的话必须全每台服数据库都要设置密码且密码要一样
  3. 宕机的服务器 启动服务后,要指定主服务器的连接密码
    要么都设置连接密码 必须一样
# 需求: 192.168.4.57主机做哨兵服务器 主从从结构 实现redis服务的高可用和数据自动备份
步骤一:给53主机的Redis服务设置连接密码 要与另外2台Redis服务器设置一样的连接密码
]# redis-cli -h 192.168.4.53
> config set requirepass 123456
> auth 123456
> config rewrite
步骤二:配置哨兵服务(4.57)安装源码软件redis (无需做初始化配置 如果做了初始化吧redis服务停止即可)
[~]# yum -y install gcc
[~]# tar -zxf redis-4.0.8.tar.gz
[redis]# cd redis-4.0.8/
[redis-4.0.8]# make && make install  创建并编辑主配置文件(说明源码包里有哨兵服务配置文件的模版sentinel.conf)
vim /etc/sentinel.conf
bind 192.168.4.57 # 哨兵服务地址
port 26379 # 哨兵服务的端口号
sentinel monitor redis_server 192.168.4.51 6379 1  # 主的ip 主的端口 哨兵服务器台数
sentinel auth-pass redis_server 123456
# 如果主服务器没有连接密码此配置可以省略
:wq
# 置入后台运行
nohup redis-sentinel /etc/sentinel.conf &
jobs # 查看当前终端后台进程

在这里插入图片描述
测试配置

1.停止主服务器的redis服务
/etc/init.d/redis_6379 stop
2.在服务器52主机 查看复制信息 角色为master
[root@redisB ~]# redis-cli -h 192.168.4.52 -p 6352
192.168.4.52:6352> info replication
# Replication
role:master  //角色是master
connected_slaves:0

在这里插入图片描述

持久化

什么是持久化:redis服务可以永久的保存数据 ,如何实现的? redis运行过程中 自动把内存里的数据自动复制到硬盘里
实现方式有两种:
1. RDB文件:指定就是数据库目录下的dump.rdb文件 redis运行后 会根据配置文件的设置的存储频率 把内存数据复制到dump.redis里 但是意外宕机时 丢失最后一次持久化数据。
2. AOF文件:redis服务AOF文件与mysql的binlog日志文件功能相同 是一个文件,记录连接redis服务后执行的写操作命令并以追加的方式记录写操作命令 默认没有开启 需要认为开启。

RDB文件的使用

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
使用RDB文件 实现数据的备份与恢复
第一步 拷贝dump.rdb 文件就是对数据的备份
在这里插入图片描述

第二步 把备份的dump文件 再次拷贝回数据库目录就是恢复

AOF文件的使用

启用AOF文件 通过修改配置文件启用(修改文件需要重启redis服务才能生效,所以适合线下服务器)每隔一秒存一次
注意 : 通过配置文件启用AOF文件 服务器原有的数据会被删除 所以命令行的方式更靠谱
在这里插入图片描述
命令行的方式:
在这里插入图片描述
修复aof文件:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

数据类型

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/647574.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

幻兽帕鲁服务器多少钱一个?32元你敢信吗?4核16G

幻兽帕鲁服务器多少钱?价格便宜,阿里云4核16G幻兽帕鲁专属服务器32元1个月、66元3个月,4核32G配置113元1个月、339元3个月;腾讯云4核16G14M服务器66元1个月、277元3个月、1584元一年。阿腾云atengyun.com分享阿里云和腾讯云palwor…

网络通讯(20)-UDP协议应用实例网络聊天室

本文演示UDP协议应用,通过实例网络聊天室进行学习。 目录 实现多人聊天室的功能

关键点平滑算法笔记

目录 关键点卡尔曼滤波和低通滤波 alpahpose 是跟踪box的 关键点卡尔曼滤波和低通滤波 import numpy as npimport matplotlib.pyplot as plt# rShldrBend 0, rForearmBend 1, rHand 2, rThumb2 3, rMid1 4, # lShldrBend 5, lForearmBend 6, lHand 7, lThumb2 8, lMid1 9, #…

LEETCODE 164破解闯关密码

class Solution { public:string crackPassword(vector<int>& password) { //在比较两个字符串大小时&#xff0c;其实是按照字典序逐个比较它们的字符。首先比较两个字符串的第一个字符&#xff0c;如果它们不相等&#xff0c;则可以根据它们的 ASCII 码大小确定它们…

opencv012 滤波器04 中值滤波,双边滤波

中值滤波 取中位数&#xff0c;可以处理椒盐噪音 CV自带medianBlur函数dst cv2.medianBlur(src, ksize) 参数说明&#xff1a;1.src: 需要滤波的图片&#xff1b;2.ksize&#xff1a;核大小&#xff0c;必须是比1大的奇数【举个例子&#xff1a;3&#xff0c;5&#xff0c;7……

RISC-V RVWMO 内存模型解释

RISC-V RVWMO 内存模型解释 引言 本文介绍 RISC-V RVWMO 内存模型。RVWMO 内存模型定义了什么样的全局内存顺序才是合法的。本引言部分将解释为什么会出现不合法的全局内存顺序&#xff0c;以及为什么需要内存模型。 首先引起乱序的全局内存顺序&#xff08;指令重排序&…

React 表单、处理受控表单组件、非受控组件

React 表单处理 学习目标&#xff1a; 能够使用受控组件的方式获取文本框 使用 React 处理表单一般有两种方法 受控组件 &#xff08;推荐&#xff09;非受控组件 &#xff08;了解&#xff09; 1. 受控表单组件 什么是受控组件&#xff1f; input 框自己的状态被 React 组…

深度学习-Pytorch如何构建和训练模型

深度学习-Pytorch如何构建和训练模型 用pytorch如何构建模型&#xff0c;如何训练模型&#xff0c;如何测试模型&#xff1f; pytorch 目前在深度学习具有重要的地位&#xff0c;比起早先的caffe&#xff0c;tensorflow&#xff0c;keras越来越受到欢迎&#xff0c;其他的深度…

10.多柱状图(MuliBarChart)

愿你出走半生,归来仍是少年&#xff01; 环境&#xff1a;.NET 7、MAUI 话接上回&#xff08;9.单柱状图&#xff08;SingleBarChart&#xff09;&#xff09;&#xff0c;从单柱拓展到多柱状图。 1.数据设置 private void InitValue(List<BasicSerieDto> dtos){Serie…

英文阅读-LinkedIn‘s Tips for Highly Effective Code Review

LinkedIn的CR技巧 LinkedIn团队CodeReview经验与方法&#xff0c;原文来自https://thenewstack.io/linkedin-code-review/ 总结 Do I Understand the “Why”? 在提交pr的同时需要描述本次修改的“动机”&#xff0c;有助于提高代码文档质量。 Am I Giving Positive Feedbac…

openssl3.2/test/certs - 055 - all DNS-like CNs allowed by CA1, no DNS SANs

文章目录 openssl3.2/test/certs - 055 - all DNS-like CNs allowed by CA1, no DNS SANs概述笔记END openssl3.2/test/certs - 055 - all DNS-like CNs allowed by CA1, no DNS SANs 概述 openssl3.2 - 官方demo学习 - test - certs 笔记 /*! * \file D:\my_dev\my_local_…

Java转成m3u8,hls格式

Java转成m3u8,hls格式 需求分析 大致思路 循环文件夹下面所有文件判断当前文件是否是视频文件&#xff0c;如果是视频文件先转为ts文件 因为听别人说先转成ts之后再切片会快很多 转成ts文件&#xff0c;并为这些文件单独生成一个目录&#xff0c;如果目录不存在则新建一个目…

14.5 Flash查询和添加数据库数据

14.5 Flash查询和添加数据库数据 在Flash与数据库通讯的实际应用中&#xff0c;如何实现用户的登录与注册是经常遇到的一个问题。登录实际上就是ASP根据Flash提供的数据查询数据库的过程&#xff0c;而注册则是ASP将Flash提供的数据写入数据库的过程。 1.启动Access2003&…

C++Linux网络编程Day1

最简单server程序 #include <iostream>// sys&#xff08;系统&#xff09;,socket&#xff08;套接字&#xff09;&#xff0c;这个还是挺好理解的 #include <sys/socket.h>#include <arpa/inet.h>#include <stdio.h> #include <string.h>int …

项目管理的细节:屁股决定脑袋

在我刚入行的时候&#xff0c;由于我勤奋好学&#xff0c;技术上钻研得比较深入&#xff0c;我曾一度自视甚高&#xff0c;甚至有些傲慢。那时&#xff0c;我年轻气盛&#xff0c;未能充分认识到自己的不足。我曾认为领导对我的评价不公&#xff0c;未能充分认识到我的能力和价…

SpringBoot和Vue接口调用传参方式

简单总结一下常用的传参方式&#xff0c;一些前后端分离项目接口调试时经常出现传参格式错误问题。 前后端进行交互时方法一般就分为get和post&#xff0c;至于后面的delete和put都是基于post进行封装而出的。 Http请求中不同的请求方式会设置不同的Content-Type,参数的传递方…

C#,获取与设置Windows背景图片的源代码

为了满足孩子们个性化桌面的需求。 这里发布获取与设置Windows背景图片的源代码。 1 文本格式 using System; using System.IO; using System.Data; using System.Linq; using System.Text; using System.Drawing; using System.Collections; using System.Collections.Gene…

ES数据处理方法

由于日志数据存在ES项目里&#xff0c;需要从ES中获取日志进行分析&#xff0c;使用SQL数据进行处理&#xff0c;如下&#xff1a; select traceid-- STRING COMMENT 流程id, ,appnum -- BIGINT COMMENT 迭代号, ,appversion --STRING COMMENT APP版本, ,appc…

JeecgBoot集成TiDB,打造高效可靠的数据存储解决方案

TiDB简介 TiDB是PingCAP公司自主设计、研发的开源分布式关系型数据库&#xff0c;同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) 的融合型分布式数据库产品&#xff0c;具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生…

【学习笔记】CF1349F2 Slime and Sequences (Hard Version)

多项式工业警告&#xff01;&#xff01;&#xff01; 点击看题意 思路来自 这位大佬 。 为什么这么好的题解没人评论。 Part 1 前置知识&#xff1a;拉格朗日反演&#xff08;多项式复合&#xff09;&#xff0c;分式域&#xff08;引入负整数次项&#xff09;。 条件&a…