日常学习记录随笔-redis实战

redis的持久化(rdb,aof,混合持久化)
redis的主从架构以及redis的哨兵架构
redis的cluster
redis 是要做持久化的,一般用redis会把数据放到缓存中为了提升系统的性能
如果redis没有持久化,重启的化数据就会丢失,所有的请求数据都会打在db上
这个时候数据库可能就会挂掉,所以一般使用redis的化就要开启redis的持久化
# 在redis的conf文件中
#save 60  1000
这个我们可以配置,意思是60s内至少有1000次数据的改动,就会自动保存一次
我们也可以通过save或者bgsave来手动执行生成这个rdb文件,他写进去的是二进制文件
Redis 后台触发条件 的时候生成快照默认 是通过bgsave (异步持久化文件)

在这里插入图片描述

save 是利用执行命令的主线程在生成rdb 文件
bgsave的话 他不是用你的主线程生成rdb文件 他是用你的另外子进程去生成呢个副本
rdb的问题就是数据会丢失  比方我们设置save 60 1000, 在60s内变动1000次数据就会写进rdb 文件进行持久化
如果不到1000次的时候,此时redis宕机了 数据就会丢失aof 我们可以通过他的appendOnly yes 开启他的aof 机制

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

aof的策略
1.每执行一条都会去写进redis的aof文件中
2.我可以设置他1s执行一次  每秒执行一次  平均每过1s中,刷新进aof文件中

在这里插入图片描述

我们使用aof持久化的时候,当我们redis重启的时候.他会吧你的每一条数据逐行去执行,aof文件的问题就是比如说我aof文件特别大,呢么 这个时候 你去恢复数据的时候会很长像rdb aof怎么去选择 你的知道他的优缺点

在这里插入图片描述

rdb 体积小 因为他是二进制压缩数据
aof 体积大 所以他的恢复数据比较慢 但是他的数据安全性会比我们rdb 好一些
aof  也做了一些优化  aof 重写
基于 redis 的incr 进行重写 针对于这种情况 我aof 提供了一种优化机制

在这里插入图片描述

针对于这种情况  redis 提供一种优化机制  我可以直接使用 set red 9 就可以了

在这里插入图片描述

redis可以配置
aof文件如果超过64兆  就会执行重写操作
对于文件不大的情况 不会做重写比如说 我aof 之前通过aof文件进行恢复数据的时候 我需要incr 6次 我才可以恢复数据
现在我直接set red 6 就可以了
redis 默认开启rdb,aof需要自己去更改  因为rdb 生成的是二进制文件不管是rdb和aof他都有自己的优缺点
rdb容易丢数据 但是他恢复数据快
我们aof恢复数据他恢复慢 但是他数据相对来说安全一些在redis 4.o以后 有一个混和持久化

在这里插入图片描述

集中rdb 和aof的优点他在执行aof 重写的时候会将aof文件变成二进制,前面的是吧内存数据进行的重写变成rdb压缩
混合持久化aof,只要触发aof重写他会把我们aof 文件变成格式比较紧促的二进制rdb 格式
如果我又有命令来执行 他会以为命令的形式追加到append的文件中 
回头我恢复的时候 我前面就可以恢复的很快

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

Redis4,0之后就可以使用混合持久化.现在用的是5.0的版本
混合持久化的方式本质上还是aof,用的文件还是aof的文件
只不过他在aof重写的时候,他的文件格式不再是单纯的一条一条命令
而是吧内存数据搞成二进制压缩格式,之后有新的命令的时候 还是会以aof的一条条命令
追加到我文件种redis的数据备份

在这里插入图片描述

redis的主从架构 主节点去写数据 从节点去备份数,并且提供读操作
从节点只需要在redis.conf中配置 replicaof  就可以了

在这里插入图片描述

我从节点启动的时候,会从主节点进行全量同步数据,
主节点会生成rdb文件发到slave(全量内存生成)上,之后就是增量同步
主从复制的时候,主节点会生成rdb 快照发送到从节点上
从节点过多,会存在主从复制风暴,因为主节点会给每一个从节点发送个rdb 数据
多个从节点会同时从主节点去复制数据,这就会导致主节点压力过大,一般防止多个节点从主节点全部全量复制的化

在这里插入图片描述

我可以让多个备份节点根我们的某一个从节点相连,搞这种阶梯型架构来备份我们的从节点
有的时候,我可以为了提升性能,比如说我吧10条命令一次性的发送到redis中去执行
我可以批量发到redis 中去执行 让redis批量执行.减少网络传输的开销
redis的管道可以让你一次性的吧多条命令,一次性的发送到redis的service中

在这里插入图片描述

哨兵模式  我们的主从架构上master挂了,可能的通过手动的方式把从节点加到主节点上,
对我们哨兵架构来说,哨兵监控redis,哨兵会自动帮你进行选举,选举从节点,当主节点挂了以后,哨兵集群中至少有一半认为他是挂了此时才会说是挂了(哨兵的个数是基数)

在这里插入图片描述

也就是当主节点挂了,此时要开启新的选举 你必须有半数以上的哨兵认可 这个主节点挂了,才可以开启这个选举。当主节点挂了 集群中半数以上哨兵同意你挂了  再开启你的集群选举

在这里插入图片描述

我们可以使用Info 命令来查看你redis的命令

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

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

相关文章

kafka 相关概念

1 kafka 生产者 kafka 用push的方式把消息推送到topic 每个topic下可以有多个分区, 可以用hash 也可以用轮询的方式指定分区 每个分区内部是可以保证顺序的,但是整体无法保证顺序,除非设置成一个topic只有一个分区。 kafka这种多分区的设置 带…

TX Text Control .NET Server for ASP.NET 32.0 Crack

TX Text Control .NET Server for ASP.NET 是VISUAL STUDIO 2022、ASP.NET CORE .NET 6 和 .NET 7 支持,将文档处理集成到 Web 应用程序中,为您的 ASP.NET Core、ASP.NET 和 Angular 应用程序添加强大的文档处理功能。 客户端用户界面 文档编辑器 将功能…

C++ Builder 将运行时需要的库打进运行的程序包

一、打开【工程】–【选项】–【Linker】-- 设置【Use dynamic RTL】为 False 二、打开【工程】–【选项】–【组件包】-- 设置【和运行时组件包一起编译】为 False

电子邮件地址注册过程详解

许多人可能对如何注册电子邮件地址感到困惑,本文将详细解析电子邮件地址的注册过程:确定邮箱厂商、创建邮箱账户、设置电子邮件地址。 1、确定要注册的邮箱厂商 首先我们需要确定要注册哪种类型的电子邮件服务。目前市场上有许多不同的电子邮件服务提供商…

数据库管理-第110期 Oracle Exadata 01(20231016)

数据库管理-第110期 Oracle Exadata 01(202301016) 今天开始一个新的系列,讲讲Oracle Exadata,将用若干期并关联之前和一体机相关的一些内容对Exadata进行讲解。本期是Oracle硬件的介绍。 1. Oracle Hardware and Engineered Sy…

VMware 配置记录

VMware 配置笔记 CentOS 7.9 镜像下载 官网太慢,建议在阿里云镜像站去CentOS配置页找标准版下载。 选标准版即可,各版本区别: DVD:标准版,包含常用软件,体积为 4.4 G;Everything&#xff1a…

前端本地开发中,代理配置是如何解决跨域的?

文章目录 跨域(Cross-Origin)开发代理原理先说一下三个概念那代理到底是如何解决跨域的? 补充参考视频 跨域(Cross-Origin) 这里再说一下跨域的概念吧。 在Web开发中,浏览器限制了从一个不同来源&#xff…

Mac OS m1 下安装Gradle5.1

1. 下载、解压 1.1 下载地址 https://gradle.org 往下翻 选择 5.1 或者选择 任何 你想要的版本 ,点击 binary-only 即可下载 . 1.2 解压到指定目录 2. 配置环境变量 2.1 编辑环境文件 vi ~/.bash_profile #GRADLE相关配置 GRADLE_HOME/Users/zxj/Documents/devSoft/grad…

LeetCode算法位运算—只出现一次的数字

目录 136. 只出现一次的数字 - 力扣(LeetCode) 解题思路: 代码: 运行结果: 补充 异或的重要性质 136. 只出现一次的数字 - 力扣(LeetCode) 给你一个 非空 整数数组 nums ,除了某…

关于python pytorch 与CUDA版本相关问题

首先在终端中输入python进入python交互式环境 import torch print(torch.__version__) #注意是双下划线官网:https://pytorch.org/get-started/previous-versions/ CUDA Toolkit版本及可用PyTorch对应关系总结(参考官网) cuda版本确定后&a…

问题记录1 json解析问题

问题: json解析int类型不符合预期,使用json.NewDecoder解决。 示例如下: package mainimport ("bytes""encoding/json""fmt" )func main() {data1 : map[string]interface{}{}data1["id"] int64(4…

Fluent瞬态结果的时间统计处理

声明:本文基于 2023R2 版,在其他版本中界面操作、可设置内容等可能存在区别。 1 背景 仿真中有时需要对区域上每个位置的结果数据进行统计分析,例如需要统计设备表面的压力脉动情况,并找出压力脉动最大的位置。在Fluent中对结果…

做web自动化测试遇到Chrome浏览器老是自动更新,怎么办 ? 这里提供两个解决办法 。

web自动化安装驱动安装 进行web自动化时 ,需要提前安装浏览器的驱动 ,尤其是chrome浏览器 。它的更新速度很快 ,是不是更新了新版本 。这就导致我们的驱动也要跟着变化。 1.停止自动更新 那么 ,如何关闭chrome浏览器的自动更新…

MySQL事务MVCC详解

一、概述 MVCC (MultiVersion Concurrency Control) 叫做多版本并发控制机制。主要是通过数据多版本来实现读-写分离,做到即使有读写冲突时,也能做到不加锁,非阻塞并发读,从而提高数据库并发性能。 MVCC只在已提交读&#xff08…

Leetcode刷题详解——将x减到0的最小操作数

1. 题目链接:1658. 将 x 减到 0 的最小操作数 2. 题目描述: 给你一个整数数组 nums 和一个整数 x 。每一次操作时,你应当移除数组 nums 最左边或最右边的元素,然后从 x 中减去该元素的值。请注意,需要 修改 数组以供接下来的操作…

Linux高性能服务器编程 学习笔记 第十四章 进程池和线程池

动态创建子进程或子线程的缺点: 1.动态创建进程或线程比较耗时,这将导致较慢的客户响应。 2.动态创建的子进程或子线程通常只用来为一个客户服务(除非我们做特殊处理),这将导致系统上产生大量的进程或线程&#xff0c…

windows安装npm教程

在安装和使用NPM之前,我们需要先了解一下,NPM 是什么,能干啥? 一、NPM介绍 NPM(Node Package Manager)是一个用于管理和共享JavaScript代码包的工具。它是Node.js生态系统的一部分,广泛用于构…

CVE-2017-7529 Nginx越界读取内存漏洞

漏洞概述 当使用Nginx标准模块时,攻击者可以通过发送包含恶意构造range域的header请求,来获取响应中的缓存文件头部信息。在某些配置中,缓存文件头可能包含后端服务器的IP地址或其它敏感信息,从而导致信息泄露。 影响版本 Ngin…

C++对象模型(10)-- 虚函数2

1、虚函数表、虚函数表指针的创建时机 我们知道虚函数表是属于类的,而虚函数表指针是属于对象的。在编译的时候,编译器会往类的构造函数中插入创建虚函数表指针的代码。同样,在编译期间编译器也为每个类确定好了对应的虚函数表的内容。 虚函…