当前位置: 首页 > news >正文

日常学习记录随笔-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的命令

相关文章:

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

redis的持久化(rdb,aof,混合持久化) redis的主从架构以及redis的哨兵架构 redis的clusterredis 是要做持久化的,一般用redis会把数据放到缓存中为了提升系统的性能 如果redis没有持久化,重启的化数据就会丢失,所有的请…...

MySQL事务MVCC详解

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

SQL RDBMS 概念

SQL RDBMS 概念 RDBMS是关系数据库管理系统(Relational Database Management System)的缩写。 RDBMS是SQL的基础,也是所有现代数据库系统(如MS SQL Server、IBMDB2、Oracle、MySQL和MicrosoftAccess)的基础。 关系数据库管理系统(Relational Database Management Sy…...

onlyoffice的介绍搭建、集成过程。Windows、Linux

文章目录 什么是onlyoffice功能系统要求安装必备组件 windows搭建资源下载安装数据库onlyoffice安装测试 Linux搭建dockerdocker-compose 项目中用到的技术,做个笔记哈~ 什么是onlyoffice 在本地服务器上安装ONLYOFFICE Docs Community Edition Community Edition…...

37. 解数独

编写一个程序,通过填充空格来解决数独问题。 数独的解法需 遵循如下规则: 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图) 数独部分空…...

git cherry-pick 合并某次提交

一、无冲突的情况 1、合并其它分支某次提交 切换到主分支,想把其他分支的某次commit修改 合并到主分支上, 可以用 git cherry-pick 命令 比如,其它分支,某次提交的commit Hash 是30e48158badc39801f1ce3cb375a07b872d6f220 &a…...

【面试HOT100】子串普通数组矩阵

系列综述: 💞目的:本系列是个人整理为了秋招面试的,整理期间苛求每个知识点,平衡理解简易度与深入程度。 🥰来源:材料主要源于LeetCodeHot100进行的,每个知识点的修正和深入主要参考…...

XPSpeak软件教程-科学指南针

在做X 射线光电子能谱(XPS)测试时,科学指南针检测平台工作人员在与很多同学沟通中了解到,好多同学仅仅是通过文献或者师兄师姐的推荐对XPS测试有了解,但是对于其软件操作还属于小白阶段,针对此,科学指南针检测平台团队…...

NLP算法面经 | 腾讯 VS 美团

作者 | 曾同学 编辑 | NewBeeNLP 面试锦囊之面经分享系列,持续更新中 后台回复『面试』加入讨论组交流噢 lz从3月初脚因打球扭伤了开始,投递简历,接二连三的面试鞭尸又面试,昨天才终于上岸了,分享经验~ 腾讯PCG看点&…...

【广州华锐互动】塔吊多人安拆VR互动培训系统

塔吊多人安拆VR互动培训系统由广州华锐互动制作,是一种基于VR技术的模拟实训系统,专门用于培训塔吊驾驶员和操作员。 在现实生活中,塔吊操作具有一定的危险性,尤其是在培训过程中容易发生意外。而使用VR互动实训系统,学…...

Linux性能优化--性能工具:特定进程内存

5.0 概述 本章介绍的工具使你能诊断应用程序与内存子系统之间的交互,该子系统由Linux内核和CPU管理。由于内存子系统的不同层次在性能上有数量级的差异,因此,修复应用程序使其有效地使用内存子系统会对程序性能产生巨大的影响。 阅读本章后&…...

MyLife - Docker安装rabbitmq

Docker安装rabbitmq 个人觉得像rabbitmq之类的基础设施在线上环境直接物理机安装使用可能会好些。但是在开发测试环境用docker容器还是比较方便的。这里学习下docker安装rabbitmq使用。 1. rabbitmq 镜像库地址 rabbitmq 镜像库地址:https://hub.docker.com/_/rabbi…...

Leetcode刷题详解——长度最小的子数组

1. 题目链接:209. 长度最小的子数组 2. 题目描述: 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其长度**。**如果不…...

客流人数管理新趋势:景区客流采集分析系统的功能特点

随着旅游业的蓬勃发展,越来越多的人选择前往景区进行休闲和旅游。然而,人流量的增加也给景区管理带来了一系列的挑战。为了更好地管理和运营景区,景区客流采集分析系统应运而生。 一、案例展示 二、产品卖点 该系统利用先进的人工智能算法和…...

【仙逆】王林极限跑酷,藤厉自食恶果,仙逆战斗获好评,张虎命运被改写

Hello,小伙伴们,我是小郑继续为大家深度解析国漫资讯。 最新一集《仙逆》已经更新,相信很多小伙伴都已经先睹为快,在击杀了白展之后,张虎和王林担心其师傅即墨老人报复,因此躲到看似安全的藤家城,以为那里有…...

想要精通算法和SQL的成长之路 - 前缀和的应用

想要精通算法和SQL的成长之路 - 前缀和的应用 前言一. 区域和检索 - 数组不可变二. 二维区域和检索 - 矩阵不可变2.1 前缀和的计算2.2 用前缀和计算二维区域和 三. 矩形区域不超过 K 的最大数值和 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 区域和检索 - 数组不可变 原…...

如何让大模型自由使用外部知识与工具

本文将分享为什么以及如何使用外部的知识和工具来增强视觉或者语言模型。 全文目录: 1. 背景介绍 OREO-LM: 用知识图谱推理来增强语言模型 REVEAL: 用多个知识库检索来预训练视觉语言模型 AVIS: 让大模型用动态树决策来调用工具 技术交流群 建了技术交流群&a…...

关注用户信息卡片

效果展示 CSS 知识点 box-shadow 属性回顾CSS 变量回顾 实现页面整体布局 <div class"card"><div class"box"><!-- 视频 --><div class"vide_box"><video src"user.mp4" type"video/mp4" aut…...

【Java基础面试十八】、说一说重写与重载的区别

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;说一说重写与重载的区别…...

Linux文件管理(上)

一、VIM编辑器 1、vi概述 vi&#xff08;visual editor&#xff09;编辑器通常被简称为vi&#xff0c;它是Linux和Unix系统上最基本的文本编辑器&#xff0c;类似于Windows 系统下的notepad&#xff08;记事本&#xff09;编辑器。 2、vim编辑器 Vim(Vi improved)是vi编辑器…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数&#xff0c;对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档&#xff09;&#xff0c;如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下&#xff0c;风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...

uniapp 字符包含的相关方法

在uniapp中&#xff0c;如果你想检查一个字符串是否包含另一个子字符串&#xff0c;你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的&#xff0c;但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...

提升移动端网页调试效率:WebDebugX 与常见工具组合实践

在日常移动端开发中&#xff0c;网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时&#xff0c;开发者迫切需要一套高效、可靠且跨平台的调试方案。过去&#xff0c;我们或多或少使用过 Chrome DevTools、Remote Debug…...

xmind转换为markdown

文章目录 解锁思维导图新姿势&#xff1a;将XMind转为结构化Markdown 一、认识Xmind结构二、核心转换流程详解1.解压XMind文件&#xff08;ZIP处理&#xff09;2.解析JSON数据结构3&#xff1a;递归转换树形结构4&#xff1a;Markdown层级生成逻辑 三、完整代码 解锁思维导图新…...