redis 网课笔记

news2025/7/14 9:02:04

缓存 缓存雪崩

缓存雪崩是指在同一时段大量的缓存key同时失效或者Redis服务宕机,导致大量请求到达数据库。
解决方案
  • 给不同的key的TTL添加随机值
  • 利于Redis集群提高服务的可用性 哨兵模式、集群模式
  • 给缓存业务添加降级限流策略 ngxin或spring cloud gateway
  • 给业务添加多级缓存 Guava

双写一致性

  • 一致性要求高
  • 允许延迟
    数据不一致情况
    在这里插入图片描述

在这里插入图片描述

方案 延迟双删

放入缓存的数据:读多写少。
写操作:延迟双删
仍然有出现脏数据的可能
延时双删:主从集群,读写分离,需要延时让主节点把数据同步到从节点。

方案 互斥锁

写或读时都加锁。
优化:
因为存入缓存的数据,读多写少 -> 共享锁和排它锁

方案 异步通知(MQ、Cannal),保证数据的最终一致性

Redis持久化

RDB 定时对整个内存做快照

  • save
  • bgsace
RDB的执行原理
  • bgsave fork主进程得到子进程, 子进程复制了父进程的页表,子进程共享主进程的内存数据。
  • 子进程读取内存数据并写入RDB文件。
子进程进行读操作时,主进程可能在执行写操作 ------ copy-on-write
  • 主进程执行读操作时,访问共享内存。
  • 主进程执行写操作时,拷贝一份数据,执行写操作。

AOF 记录每一次执行的命令

默认关闭
redis.conf 中配置 appendonly yes
appendfilename 可以指定文件名
appendfsync 配置刷盘时机
alwags:同步刷盘
everysec:每秒刷盘
no:操作系统控制:性能最好,可靠性较差
AOF比RDB文件大得多,bgrewriteaof:AOF文件执行重写功能,用最少的命令达到相同的效果。

redis数据过期策略

  • 惰性删除: 设置key的过期时间之后,仅在需要该key时,检查它是否过期,入股过期就删除。优点CPU友好。缺点:内存不友好。
  • 定期删除:每隔一段时间,对key进行检查,删除过期key。SLOW模式、FAST模式。优点:通过限制删除操作执行的时长和频率来减少删除操作对CPU的影响。定期删除能有效地释放过期键占用的内存。缺点:删除操作的执行时间和频率难以确定。
  • 惰性删除和定期删除配合使用。

redis淘汰策略

  • noeviction:不淘汰任何key,默认
  • volatile-ttl : 有限淘汰剩余时间短的
  • volatile-random:对设置了过期时间的,进行随机淘汰
  • volatile-lru:对设置了过期时间的,进行LRU算法淘汰
  • volatile-lfu:对设置了过期时间的,进行LFU算法淘汰
  • allkeys-random
  • allkeys-lru
  • allkeys-lfu
    LFU:最少频率使用
    LRU:最近最少使用
数据淘汰策略使用建议
  • 优先使用allkeys-lru.尤其是有明显冷热数据区分的,把最经常访问的数据留在内存
  • 业务中数据访问频率差别不大,没有明显冷热数据区分:使用allkeys-random,随机淘汰。
  • 有置顶需求:volatile-lru,且置顶数据不设置过期时间。
  • 有短时高频访问数据:allkeys-lfu 或 volatile-lfu

在这里插入图片描述

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

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

相关文章

Python中如何使用pandas和matplotlib库绘制图表

目录 一、引言 二、pandas基础 三、matplotlib基础 四、pandas与matplotlib的结合 五、高级图表与深度分析 结论 本文详细探讨了Python中两个重要的库——pandas和matplotlib,它们在数据处理和可视化中的应用。通过实例代码,我们深入了解了如何利用…

WhatsApp Business账户被封?常见封号原因解析

目前,作为全球即时通讯领域的重要平台之一的WhatsApp已成为企业在营销和与客户沟通时的首选工具。但是长时间、高强度的营销行为很容易导致WhatsApp Business账户突然被封禁,无法再使用账号。即使后续再去进行申诉,要求官方解封该账户&#x…

网络安全(黑客)-小白自学笔记

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高; 二、则是发展相对成熟…

如何进行回馈式直流负载测试

回馈式直流负载测试是将负载连接到电源输出端,以模拟实际工作条件,然后测量电源在不同负载条件下的性能表现,包括直流负载、电源供应器、电流表和电压表等。确保这些设备能够满足测试需求,将电源供应器的正极连接到直流负载的输入…

PyQt界面开发的终极指南

文章目录 前言一、PyQt 简介二、PyQt 与 Qt 的蒙娜丽莎三、PyQt 布局管理器3.1、简介3.2、项目实战3.2.0、添加伸缩项 layout.addStretch:控制布局中组件之间的间距。3.2.1、垂直布局管理器 QVBoxLayout:控件按照从上到下的顺序排列3.2.2、水平布局管理器…

无忧企业文档2.1.8版本新增文档级权限控制

无忧企业文档是一款针对企业用户提供在线文档、协同编辑、知识管理的基础化办公工具,产品采用B/S构架。功能覆盖场景包括:在线文档的私有化部署、团队协同、知识管理、在线文档识别的扩展、文档权限化管理等等场景。本次2.1.8版本新增了文档级权限控制核…

第七届“蓝帽杯”决赛圆满收官 | 赛宁网安全程提供技术保障

10月29日,由公安部网络安全保卫局、教育部教育管理信息中心、中国教育协会指导,中国人民公安大学主办,奇安信科技集团股份有限公司协办,南京赛宁信息技术有限公司提供技术支持的2023第七届“蓝帽杯”全国大学生网络安全技能大赛决…

搜维尔科技:scalefit生物力学人体工学软件分析!

人体工程学分析 21加载参数和头像显示 识别(隐藏的)健康风险 根据DGUV交通灯进行生物反馈(DIN/ISO) 实时应力分析 三维空间可视化 静态/动态肩载 用左/右赋值加载输入 腰椎间盘压缩计算 距离和定时器显示 带有运动跟踪的化身/视频叠加 外骨骼与CAD工作站仿真 CSV原始…

【基于卷积和Transformer:多光谱图像光谱重建】

Spectral Reconstruction From Satellite Multispectral Imagery Using Convolution and Transformer Joint Network (基于卷积和Transformer联合网络的卫星多光谱图像光谱重建) 基于卫星多光谱(MS)图像的光谱重建(S…

如何修改MinIO Share时的URL

使用Helm方式在Kubernetes中部署MinIO后。选择分享文件,获得的分享连接域名为K8S内部Service连接地址,这样的地址不可以在集群外部使用。 修改MINIO_SERVER_URL 前置条件 (Helm部署方式)域名需要访问到Name为minio的K8S Service…

危废废水如何处理?

危废废水的处理方法包括以下几种: 物理处理法:通过物理作用分离和去除废水中不溶解的悬浮物、胶体物质等。常用的方法有:重力分离、离心分离、反渗透、气浮等。化学处理法:通过化学反应和传质作用来分离、转化、破坏和消除废水中…

使用treq库下载

首先,我们需要导入treq库,这是一个用于Python的HTTP客户端库。代码如下: import treq然后,我们需要设置代理服务器。代码如下: proxy treq.ProxyManager("jshk.com.cn:8120")接下来,我们需要创…

antd renderFormItem AutoComplete结合防抖导致防抖失效的解决办法

业务背景 我们有一个需求是在用户输入用例名称的时候,系统根据名称去匹配公共用例库中的用例模块展示在下拉框中,然后用户可选择想要的模块导入其中的用例: 但是如果用户每输入一个字符就去调用接口查询的话,这样就太频繁了&…

基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v8.0版已发布

关于MobileIMSDK MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架,超轻量级、高度提炼,一套API优雅支持 UDP 、TCP 、WebSocket 三种协议,支持 iOS、Android、H5、标准Java、小程序、Uniapp,服务端基于Netty编写。 工程…

vivo发布“蓝心千询”自然语言对话机器人

🦉 AI新闻 🚀 vivo发布“蓝心千询”自然语言对话机器人 摘要:vivo今日发布了“蓝心千询”自然语言对话机器人,基于蓝心大模型。蓝心千询可以进行知识信息的快速问答,文学创作、图片生成,甚至还能编写程序…

CV论文阅读大合集

YearNameAreamodeldescriptiondrawback2021 ICMLClip (Contrastive Language-Image Pre-training)contrastive learning、zero-shot learing、mutimodel用文本作为监督信号来训练可迁移的视觉模型CLIP’s zero-shot performance, although comparable to…

js实现容器之间交换

🔥博客主页: 破浪前进 🔖系列专栏: Vue、React、PHP ❤️感谢大家点赞👍收藏⭐评论✍️ JavaScript是一种非常流行和常用的编程语言,它在web开发中起着至关重要的作用,在实现网页动态交互、数据…

弹幕游戏制作,弹幕互动游戏开发,弹幕直播游戏

弹幕互动游戏是一种特殊类型的游戏,其中玩家可以在屏幕上发送实时评论或"弹幕",这些评论通常以文字形式出现在游戏画面上,同时影响游戏的进行。这种游戏类型通常与实况直播和在线社交互动相结合,为观众提供了参与游戏和…

Qt 使用Quazip解压缩、压缩文件

1.环境搭建 Quazip,是在zlib基础上进行了简单封装的开源库,适用于多种平台,利用它可以很方便将单个或多个文件打包为zip文件,且打包后的zip文件可以通过其它工具打开。 下载Quazip QuaZIP download | SourceForge.net 解压后&…

阿里云99元服务器ECS经济型e实例是什么来头?

阿里云99元服务器ECS经济型e实例是什么来头?阿里云新品云服务器实例:ECS经济型e实例,价格优惠2核2G经济型e实例、3M带宽、40G ESSD entry系统盘,优惠价99元一年,老用户也可以买,第二年续费不涨价依旧是99元…