redis复习1-理论基础----更新中

Redis

  • 数据类型
  • 持久化机制
  • redis过期键的删除策略
  • redis的回收策略(淘汰策略)
  • redis的同步机制是什么
  • 主从复制
  • 哨兵
  • 缓存预热/雪崩/穿透/击穿

优点:

1.速度快
redis里面的所有数据都是存在内存中所以减少了操作数据对于IO磁盘的读写操作的限制,从而提高数据读取和操作的速度
redis在接受客户端请求的时候是属于单线程操作
使用I/O多路复用模型–后续补充说明
高效的数据结构–后续补充说明


2.支持多种数据类型
支持五种数据类型
3.支持事务
操作都是原子性,要么全部完成要么全部不完成
4.丰富的特性
可以用于缓存/消息/按照key设置过期时间,过期后会自动删除

redis里面一共是有16个数据库编号为0-15

数据类型

支持五种数据类型
String(字符串)
list(列表)
hash(哈希)
set(集合)
zset(有序集合)

持久化机制

RDB持久化
数据采用数据集快照的形式进行部分持久化模式,记录数据库的所有的键值对,在某一个时间点将数据写入的临时文件,持久化结束以后用这个临时文件替换上一次持久化的文件从而达到数据而定恢复但是这个存在数据丢失的现象
AOP持久化
是将所有的命令记录以redis的命令请求格式进行完全的持久化存储保存为aof文件,读的操作不进行记录

持久化方式RDBAOF
占用存储空间小(数据级:压缩)大(指令级:重写)
存储速度
恢复速度
数据安全性会丢失数据依据策略决定
资源消耗高/重量级低/轻量级
启动优先级

redis过期键的删除策略

1.定时删除(时间换空间)
创建一个定时器,当key设置了有过期时间,当过期时间到达的手定时器任务就会立即执行对键的删除操作
优点:节约内存,到点就删除释放不必要的内存空间
缺点:CPU压力大会影响到redis服务器的吞吐量


2.惰性删除(空间换时间)
数据到达过期时间,不做处理,等待下次访问数据的时候,我们需要判断
1).未过期,返回数据
2)过期了,删除数据,返回不存在
优点:节约了cpu的性能,发现需要删除的时候才会删除
缺点:内存的压力比较大,出现长期占用内存的数据


3.定期删除
就是周期性的轮询redis数据库中的失效性数据,采取随机抽取的策略,你利用过期数据占比的方式控制删除的频率
cpu性能的占用设置有峰值,检测频率可自定义的设置
内存压力不是很大,长期占用的内存的冷数据会被持续清理
周期性抽查存储空间(随机抽查,重点抽查)----后续补充说明

redis的回收策略(淘汰策略)

三类八种
一.易失数据
1.volatile-lru
挑选最近使用最少的数据淘汰
2.volatile-lfu
挑选最近使用次数最少的数据进行
3.volatile-ttl
挑选将要过期的数据进行淘汰
4.volatile-random
任意选择数据进行淘汰
二.检测全库的数据
1.allkeys-lru:挑选最近最少使用的数据淘汰
2.allkeLyRs-lfu::挑选最近使用次数最少的数据淘汰
3.allkeys-random:任意选择数据淘汰,相当于随机
三.放弃数据驱逐
1.no-enviction(驱逐):禁止驱逐数据(redis4.0中默认策略),会引发OOM(Out Of Memory)

redis的同步机制是什么

主从复制

哨兵

缓存预热/雪崩/穿透/击穿

1.缓存预热
原因:请求数量过高/主从之间的吞吐量过高
方案:优先加载热点数据/利用分布式服务器同时进行数据的读取提速数据的加载过程/使用队列的形式进行/或者使用内容分发网络----后续进行补充说明
2.缓存雪崩
原因:在一个较短的时间出现大量的key过期了/访问缓存数据未命中进而访问数据库进而导致数据库同时接收到大量的请求无法及时的进行处理或者数据量的激增导致数据库直接崩溃
方案:设置过期时间的时候尽可能的将时间点分散,监控即将过期的数据进行判断是否需要进行延时处理作为热点数据,访问非常非常频繁的数据可以设置为永久进行处理,切换淘汰策略(如果是在lru和lfu的策略情况下具体的根据实际情况而定)
3.缓存穿透
指的是某个key过期了,但是这个key的访问量巨大/或者短时间redis对数据库发起了同一数据的大量访问
方案:设置热点数据的时间分配或者设置为永不过期的设置
二级缓存设置不同的失效时间
4.缓存击穿
出现大面积的访问未被命中或者出现非正常的url访问攻击
获取的数据再数据库里面不存在/返回的是null未进行持久化存储直接进行返回,出现恶意攻击服务器
方案:缓存null值对于查询的null值进行长期的使用或者进行定期淘汰策略/白名单策略/给设置的key添加规则,不满足规则的直接拒绝访问

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

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

相关文章

3dmax贴视频纹理

1、准备视频文件 需要avi格式的视频文件 2、创建模型 3、添加纹理 纹理选择avi视频 4、播放

四川尚熠电子商务有限公司引领抖音电商新潮流

随着抖音的火爆,越来越多的商家开始重视抖音电商服务,希望在这个庞大的平台上掘金。四川尚熠电子商务有限公司作为一家专业的抖音电商服务商,凭借其独特的运营策略和专业的服务团队,成为了商家在抖音电商领域的可靠伙伴。 四川尚熠…

C/C++ LeetCode:跳跃问题

个人主页:仍有未知等待探索-CSDN博客 专题分栏:算法_仍有未知等待探索的博客-CSDN博客 题目链接:45. 跳跃游戏 II - 力扣(LeetCode) 一、题目 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元…

开源CRM客户管理系统-FeelCRM

FeelCRM客户管理系统 开源项目介绍 FeelCRM客户管理系统,符合中小企业业务流程;支持线索管理、客户管理、商机管理、合同管理、审核管理等多个模块;希望能为广大中小企业以及开发者们提供一个更多的可能性;本版本是我公司跨语言…

《从零开始制作消除游戏:基于Web技术的简单教程》

在撰写《从零开始制作消除游戏:基于Web技术的简单教程》这篇博客时,主要的目标是提供一个清晰、逐步的指南,帮助读者从零开始创建自己的消除游戏。 游戏逻辑实现 游戏板设计与初始化:描述如何创建游戏板的数据结构,以…

区间dp/线性dp,HDU 4293 Groups

一、题目 1、题目描述 After the regional contest, all the ACMers are walking alone a very long avenue to the dining hall in groups. Groups can vary in size for kinds of reasons, which means, several players could walk together, forming a group.   As the …

Android logcat日志分析

目录 一、简介二、logcat命令2.1 adb logcat 命令格式2.2 adb logcat 命令参数2.3 adb logcat 日志缓冲区2.4 adb logcat 格式化输出2.4.1 logcat -v brief2.4.2 logcat -v long2.4.3 logcat -v process2.4.4 logcat -v tag2.4.5 logcat -v raw2.4.6 logcat -v time2.4.7 logca…

使用Halcon匹配助手进行模板匹配

使用Halcon匹配助手进行模板匹配 文章目录 使用Halcon匹配助手进行模板匹配1. 选择匹配方法2. 创建模板3. 检测模板4. 优化匹配速度 使用Halcon匹配助手,可以很方便地选择模板图像,设置匹配参数,并测试匹配结果.Halcon匹配助手支持下面几种匹…

静态独享长效IP的优点有哪些?静态独享长效IP有哪些应用场景?

随着互联网的不断发展,IP地址作为网络通信中的重要标识,其重要性日益凸显。静态独享长效IP作为一种特殊的IP地址类型,具有许多优点,适用于多种应用场景。本文将详细介绍静态独享长效IP的优点以及适用场景。 一、静态独享长效IP的优…

25考研每日的时间安排

今天要给大家分享一下25考研每日的时间安排。 没有完美的计划,只有合适的计划。 仅供参考 很多人说复习不要只看时长而是要看效率,所以学多长时间不重要,重要的高效率完成任务。 完美的计划 这个计划看起来很完美,从早到晚有学习…

js合并相同结构的对象,内容不覆盖

场景 两个结构相同的对象,要将它们具备相同key的数据合并,一般的方法会导致后面覆盖前面,所以需要特殊处理。 用一个简单的demo数据作为例子。 let obj1 { name: [{ text: “王妃1” }, { text: “王妃2” }], age: [{ num: “12” }, { nu…

关于MySQL的基本查询(多表查询等)

1.创建student和score表 CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address VARCHAR(50) ); 创建score表。SQL代码如下: CREATE…

体验华为云对话机器人服务 CBS

🏡浩泽学编程:个人主页 🔥 推荐专栏:《深入浅出SpringBoot》《java对AI的调用开发》 《RabbitMQ》《Spring》《SpringMVC》 🛸学无止境,不骄不躁,知行合一 文章目录 前言一、开通…

开源的API Gateway项目- Kong基于OpenResty(Nginx + Lua模块)

Kong 是一个在 Nginx 内运行的开源 API 网关和微服务抽象层。它是用于处理 API 流量的灵活、可扩展、可插入的工具。 Kong 提供了以下功能: 用户登录:Kong 提供了多种认证插件,像 JWT、OAuth 2.0 等,可以满足用户登录需求。Toke…

CSDN年度回忆录(扫码的官方数据版本)

引言 官方搞了个活动 就是扫码 查看年度报告的 我印象中 这方面做的最好的就是 支付宝 每年都可以看到自己的钱花在哪里了 今年数据大概率清一色饮食 都汤姆花在了炒股上 这两天A股有点逆转的样子 但是我想说,不要去(他在骗你的压岁钱) …

MySQL运维实战(4.6) SQL_MODE之NO_BACKSLASH_ESCAPES

作者:俊达 在MySQL中,默认情况下,反斜杠(\)被用作转义字符,转义反斜杠(\)后一个字符;当设置NO_BACKSLASH_ESCAPES后,反斜杠(\)将不作为转义字符,而被视为普通字符。 下面…

Ubuntu22.04执行sudo apt-get update时报错:sh: 1: /usr/lib/cnf-update-db: not found

报错如下,错误原因使用的sources-list配置和系统版本不匹配 $sudo apt-get update 获取:16 http://us.archive.ubuntu.com/ubuntu jammy-updates/restricted Sources [56.6 kB] 已下载 1,006 kB&#…

CSS 实现 flex布局最后一行左对齐的方案「多场景、多方案」

目录 前言解决方案场景一、子项宽度固定,每一行列数固定方法一:模拟两端对齐方法二:根据元素个数最后一个元素动态margin 场景二、子项的宽度不确定方法一:直接设置最后一项 margin-right:auto方法二:使用:after(伪元素…

多场景建模:阿里MARIA

Multi-scenario ranking framework with adaptmulti-scenario ranking framework with adaptive feature learning 背景 多模态搜索场景支持用户通过不同模态的Query来表达多样的搜索需求。 拍照搜索(Visual Search):实拍图作为query相似商…

pyspark学习_dataframe常用操作_02

#回顾01常用操作 from pyspark import SparkSession,DataFramespark SparkSession.builder.getOrCreate()peopleDF spark.read.json("people.json")peopleDF.printSchema()#显示DataFrame的模式信息 peopleDF.show()#显示DataFrame的数据信息 peopleDF.foreach(pri…