Redis常见问题总结

Redis常见问题总结

1.Redis分布式存储方案

分布式存储核心特点
主从(Master/Slave)模式一主多从,故障时手动切换。
哨兵(Sentinel)模式有哨兵的一主多从,主节点故障自动选择新的主节点。
集群(Cluster)模式分节点对等集群,分slots,不同slots的信息存储到不同节点。

在这里插入图片描述

2. Redis 集群切片的常见方式

分片方案分片方式说明
范围分片按数据范围值来做分片eg: 按照订单编号分片,0~9 映射到实例A;11~20 映射到实例B
哈希分片通过对key进行hash运算分片可以把数据分配到不同实例,hash(key),这个类似于取余操作,余数相同的,放在一个实例上。
一致性哈希分片哈希分片的改进利于扩展节点,可以有效解决重新分配节点带来无法命中的问题。

3. Redis 数据淘汰算法

淘汰范围机制名策略解释
不淘汰noeviction禁止驱动数据,内存不足以容纳新入数据时,新写入操作就会报错。系统默认的一种淘汰策略。
设置了过期时间的键空间volatile-random随机移除某个key
volatile-lru优先移除最近未使用的key[局部性原理]
volatile-ttlttl值小的key优先移除
全键空间allkeys-random随机移除某个key
allkeys-lru优先移除最近 未使用的key

4. Redis 的持久化

Redis的持久化主要有两种方式 RDB和AOF

RDB(Redis DataBase):传统数据库中快照的思想。指定时间间隔数据进行快照存储。

AOF(Append-Only File):传统数据库中日志思想,把每条该表数据集的命令追加到AOF文件末尾,这样出了问题了,可以重新执行AOF文件中的命令来重建数据集

对比维度RDB持久化AOF持久化
备份量重量级的全量备份,保存整个数据库轻量级增量备份,一次只保存一个修改命令
保存间隔时间保存间隔时间长保存间隔时间短,默认1秒
还原速度数据还原速度快数据还原速度慢
阻塞情况save会阻塞,但bgsave或者自动不会阻塞无论是平时还是AOF重写,都不会阻塞
数据体积同等数据体积:小同等数据体积:大
安全性数据安全性:低,容易丢数据数据安全性:高,根据策略决定

5. Redis 常见问题

1.缓存雪崩

大部分缓存失效–>数据库崩溃

解决方案:

  1. 使用锁或队列: 保证不会有大量的线程对数据库一次性进行读写,从而避免失效时大量的并发请求落到底层存储系统上。

  2. 为key 设置不同的缓存失效时间:在固定的一个缓存时间的基础上+随机一个时间作为缓存失效时间。

  3. 二级缓存: 设置一个有时间限制的缓存+一个无时间限制的缓存。避免大规模访问数据库。

2. 缓存穿透

查询无数据返回-> 直接查数据库

解决方案:

  1. 如果查询结果为空,直接设置一个默认值存放到缓存,这样第二次到缓存汇总获取就有值了,设置一个不超过5分钟的过期时间,以便能正常更新缓存。
  2. 设置布隆过滤器,将所有可能存在的数据哈希到一个足够大的bitmap中,一个一定不存在的数据会被这个bitmap拦截掉,从而避免了对底层存储系统的查询压力。
3. 缓存预热

系统上线后,将相关需要缓存数据直接加到缓存系统中。

解决方案:

1.直接写个缓存刷新页面,上线时手动操作

2.数据量不大时,可以在项目启动的时候自行进行加载

3.定时刷新缓存

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

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

相关文章

Svn如何切换删除账号

记录Svn清除切换账号 1.首先打开小乌龟的设置如下图 打开设置后单击已保存数据,然后选择清除 接上图选择清除后,就可以打勾选择清除已保存的账号,我们再次检出的就可以切换账号了 👉总结 本次记录Svn清除切换账号 如能帮助到你…

电子应用设计方案-38:智能语音系统方案设计

智能语音系统方案设计 一、引言 智能语音系统作为一种便捷、自然的人机交互方式,正逐渐在各个领域得到广泛应用。本方案旨在设计一个高效、准确、功能丰富的智能语音系统。 二、系统概述 1. 系统目标 - 实现高准确率的语音识别和自然流畅的语音合成。 - 支持多种语…

红外跟随避障模块详解

在智能车、机器人和自动化等领域避障技术是确保安全和高效运行的关键。红外避障模块作为一种常见的避障解决方案,因其非接触、响应速度快和抗干扰能力强等优点而备受青睐。本文将详细介绍红外避障模块的特点、工作原理、以及应用案例,帮助您更好地了解这…

数据下载实践教程系列:跨过数据获取障碍---TCIA和TCGA数据下载

1.前言 作为一个医工交叉领域的工科学者,我想你必定听说过TCGA数据库和TCIA数据库,但是身边不少生信学者和医生是会用的,但大都将此作为护城河而讳莫如深!有了数据,工科小伙伴也可以摆脱数据依赖而独立进行研究了。作为…

期权懂|场内个股期权开户流程有哪些?

期权小懂每日分享期权知识,帮助期权新手及时有效地掌握即市趋势与新资讯! 场内个股期权开户流程有哪些? 场内个股期权开户第一步开户‌: 投资者首先需要在具有期权交易资格的证券公司开立期权账户。 ‌场内个股期权开户第二步选…

Qt复习学习

https://www.bilibili.com/video/BV1Jp4y167R9/?spm_id_from333.999.0.0&vd_sourceb3723521e243814388688d813c9d475f https://subingwen.cn/qt/qt-primer/#1-4-Qt%E6%A1%88%E4%BE%8B https://subingwen.cn/qt/ https://download.qt.io/archive/qt/1.1Qt的特点 1.2QT中的…

Qt开源控件:图像刻度轴绘制器 (附源码)工程项目私信博主

项目简介 图像刻度轴绘制器是一款基于 Qt/C 开发的小型绘图工具,旨在实现带有刻度轴的图像显示功能。该项目主要用于需要精确测量或标注图像坐标的场景。通过左侧和底部的坐标轴以及对应的刻度线,可以直观地了解图像内容在二维空间中的位置。 项目功能 …

【Transformer序列预测】Pytorch中构建Transformer对序列进行预测源代码

Python,Pytorch中构建Transformer进行序列预测源程序。包含所有的源代码和数据,程序能够一键运行。此程序是完整的Transformer,即使用了Encoder、Decoder和Embedding所有模块。源程序是用jupyterLab所写,建议分块运行。也整理了.p…

mac 安装python3和配置环境变量

mac 安装python3和配置环境变量 前言怎样选择python3的版本python3的安装1、去官网下载安装包2、下载完成后直接解压,检查安装是否成功 前言 在学习python的第一步就是安装它和配置他的环境变量,那么选择哪个版本的python你可曾知道,下面就讲解怎样选择…

基于MFC实现的人机对战五子棋游戏

基于MFC实现的人机对战五子棋游戏 1、引言 此报告将详细介绍本次课程设计的动机、设计思路及编写技术的详细过程,展现我所学过的C知识以及我通过本次课程设计所学到例如MFC等知识。在文档最后我也会记录我所编写过程遇到的问题以及解决方案。 1.1 背景 五子棋是…

6.824/6.5840 Lab 4: Fault-tolerant Key/Value Service

We are the champions my friend And well keep on fighting till the end We are the champions ——We Are The Champions 完整代码见: GitHub - SnowLegend-star/6.824: As we advance, the trials grow ever more arduous, and now we stand before an even mig…

ShardingSphere 数据库中间件

数据库中的数据量猛增,访问性能也变慢了,优化迫在眉睫 ? 1. 关系型数据库本身比较容易成为系统瓶颈:单机存储容量、数据库连接数、处理能力都有限。 2. 当单表的数据量达到 1000W 或 100G 以后,由于查询维度较多,即使…

Webpack Tree Shaking 技术原理及应用实战,优化代码,精简产物

前言 在前端开发中,优化代码体积和提升应用性能是至关重要的课题。Webpack 提供了多种优化手段来帮助开发者实现这一目标,Tree Shaking 就是其中一种非常重要的优化技术,它通过在编译阶段移除未被使用的代码模块,从而显著减小最终…

【热门主题】000075 探索嵌入式硬件设计的奥秘

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 【热…

[保姆式教程]使用目标检测模型YOLO11 OBB进行旋转目标检测:训练自己的数据集(基于卫星和无人机的农业大棚数据集)

之前写了一个基于YOLOv8z做旋转目标检测的文章,内容写得不够好,内容也比较杂乱。现如今YOLO已经更新到11了,数据集也集齐了无人机和卫星的农业大棚,所以这次就写一个基于YOLO11 OBB的农业大棚旋转检测。 1. 下载源码配置环境 在h…

Matplotlib 内置的170种颜色映射(colormap)

Matplotlib 提供了许多内置的颜色映射(colormap)选项,可以将数值数据映射到色彩范围——热力图、温度图、地图等可视化经常会用到。 # colormap 有两种引用形式plt.imshow(data, cmapBlues)plt.imshow(data, cmapcm.Blues) 颜色映射可以分为…

工业—使用Flink处理Kafka中的数据_ProduceRecord1

1 、 使用 Flink 消费 Kafka 中 ProduceRecord 主题的数据,统计在已经检验的产品中,各设备每 5 分钟 生产产品总数,将结果存入Redis 中, key 值为

剑指offer(专项突破)---字符串

总目录:剑指offer(专项突破)---目录-CSDN博客 1.字符串的基本知识 C语言中: 函数名功能描述strcpy(s1, s2)将字符串s2复制到字符串s1中,包括结束符\0,要求s1有足够空间容纳s2的内容。strncpy(s1, s2, n)…

915DEBUG-obsidianTemplater使用

Templater使用 tp函数不正常显示相应数据 模板使用方式不正确 <% tp.date.now("YYYY-MM-DD") %> 应该被放置在一个被Templater识别为模板的文件中&#xff0c;或者在你使用Templater的插入模板功能时输入。如果只是在一个普通的Markdown文件中直接输入这段代码…

OpenAI:AGI共5层,我们现在在第2层

迈向AGI顶峰的五层阶梯&#xff1a;我们正跨越的第二步 ©作者|潇潇 来源|神州问学 在2024年的OpenAI开发者日&#xff08;Dev Day&#xff09;上&#xff0c;我们见证了人工智能领域的一系列重大进展。OpenAI的CEO Sam Altman提出了一个关于通用人工智能&#xff08;AGI…