redis 内存机制探索篇

info memory 查看redis 内存使用情况

在这里插入图片描述
出现的问题,公司在导入大量redis key 的时候,想要看一下redis 内存使用情况 ,发现used_memory_peak_perc 和 used_memory_dataset_perc 马上达到100%,这个时候很慌张,是不是当前redis 内存打满了,然后查了网上的博客,查到used_memory_dataset_perc:
在Redis中,used_memory_dataset_perc是用来表示“数据占用的内存大小的百分比”。这个指标是“数据空间占用总内存的百分比”,计算方式为“100% * (used_memory_dataset / (used_memory - used_memory_startup))”。
意思是如果这个比例如果达到了100%就会导致内存写满,这个时候非常慌张,但是又有文章说
在这里插入图片描述
意思是这个值永远也不会打满,这个时候就存在了一个疑惑,为什么说used_memory_dataset_perc 满了意味着内存使用已满,但是为什么又说是永远打不满,这是否存在矛盾,然后基于这个问题又进行探索。
在这里插入图片描述

发现操作系统的内存大小是在376G ,查看了redis 的内存分配机制,如果说redis 没有配置maxmemory 那 redis 会在达到峰值的时候像操作系统申请内存,假设操作系统内存完全提供给redis, 那理念上redis 的内存实际上是操作系统内存数,那上述问题就解决了,意思是当前内存使用量和redis 已经申请的内存的达到一定值的时候,redis 会向操作系统申请内存来应对内存使用满的情况,直到redis 的内存量和操作系统的内存量达到一致。但是情况是操作系统的内存不可能完全提供给redis使用,同时如果redis 的内存完全由操作系统内存决定的话,会非常的不稳定。
通过

free -h 

在这里插入图片描述
发现当前操作系统只能提供给117G的内存空闲内存,那意味着如果redis 内存使用情况达到操作系统内存可用峰值的时候,redis 内存就会实际上满,那这个时候redis 就会出现以下问题:
1。如果Redis实例的内存资源有限,达到峰值可能意味着无法再继续处理新的数据或请求,可能导致系统性能下降甚至崩溃。
2。如果达到峰值的内存使用量是由于数据写入造成的,那么在数据量大的情况下,可能会引发写入失败或写入延迟等问题。

因此,当used_memory_peak_perc达到100%时,通常被认为是不良情况,需要采取措施来降低内存使用量或者增加Redis实例的内存资源。这可能涉及到优化数据结构、删除部分数据、增加Redis实例的内存大小等措施。

然后导致redis 淘汰机制进行淘汰key ,性能下降崩溃,写入延迟,严重影响服务。
当redis 部署和其他进程部署在同一个机器下的时候,这种方式就非常危险,那怎么解决这个问题呢?
通过设置maxmemory,给redis 一个固定的redis 最大内存上限。
maxmemory :设置 redis 可用内存的上限。
如果 Redis 没有设置 maxmemory 参数,在 64bit 系统下那么它将使用默认值,通常为 0 或无限制。在 32bit 系统下,maxmemory 隐式不能超过 3GB。

127.0.0.1:6379> CONFIG GET maxmemory
1) "maxmemory"
2) "0"
127.0.0.1:6379> CONFIG SET maxmemory 100MB
OK
127.0.0.1:6379> CONFIG GET maxmemory
1) "maxmemory"
2) "104857600"

另一种方法是修改配置文件 redis.conf:

maxmemory 100mb

如果可用内存达到上限会发生什么?
redis 将试着根据配置的缓存策略去移除部分数据

当数据删不掉时,客户端在写数据时,服务端会响应错误信息

但是不会影响客户端读取数据

当达到maxmemory 时请设置最合适的淘汰机制去淘汰key,以降低对服务的影响。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

智能AI问答系统ChatGPT网站系统源码+Midjourney绘画+支持GPT-4-Turbo模型+支持GPT-4图片理解能力

一、AI创作系统 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI…

亚马逊发布人工智能助手Amazon Q,一起来看看有什么功能

Amazon 在11.28日Re:Invent大会上推出人工智能助手Amazon Q,主要面向企业客户,提供个性化服务。号称是专为工作定制的生成式人工智能助手。Your generative Al-powered assistant tailored for work 核心能力企业知识库:为客户提供快速、相关…

低功耗蓝牙模块在医疗保健领域中的创新应用

医疗保健领域一直在追求更先进的技术,以提高医疗服务的效率和质量。低功耗蓝牙技术的崭新应用为医疗设备的互联性和数据传输提供了可靠的解决方案。本文将深入研究低功耗蓝牙模块在医疗保健领域中的应用,重点关注其在可穿戴设备、远程医疗监测和患者数据…

Python编程基础:数据类型和运算符解析

想要学习Python编程语言?本文将为您介绍Python中常见的数据类型和运算符,为您打下坚实的编程基础。了解不同的数据类型和运算符,掌握它们之间的配合方式,让您能够更轻松地进行数据处理和计算任务。无论您是初学者还是有一定经验的…

网页能做二维码吗?1分钟学会链接转码的方法

想要将链接做成二维码图片,让他人通过扫码跳转链接以提高网页的传播性,是现在很常用的一种手段。主要在于二维码是现在最常用的一种展现方式,更加符合现在人的行为习惯,那么网址二维码该如何操作呢?今天小编给大家讲解…

对数据页的理解

1.InnoDB 是如何存储数据的? 数据表中的记录是按照行来存储的,但是数据库的读取并不以「行」为单位,否则一次读取(也就是一次 I/O 操作)只能处理一行数据,效率会非常低。 因此,InnoDB 的数据是按…

例:降压型直流开关稳压电源

继电器控制开断,记得要做防抖 单片机DAC控制输出电压 LM5117太复杂可以用TPS5450 二极管选择,可以选一个也可以选两个并联 一体成型电感排第一,铁硅铝电感排第二

CSS特效021:蛇形左右扭动的效果

CSS常用示例100专栏目录 本专栏记录的是经常使用的CSS示例与技巧,主要包含CSS布局,CSS特效,CSS花边信息三部分内容。其中CSS布局主要是列出一些常用的CSS布局信息点,CSS特效主要是一些动画示例,CSS花边是描述了一些CSS…

如何有效地开发客户关系?

如何有效地开发客户关系? 有效地开发客户关系,是企业在竞争激烈的市场中获得优势的关键。通过深入了解客户需求、提供优质的产品和服务、建立良好的沟通渠道、提供个性化的体验以及建立长期合作关系等方式,企业可以有效地开发客户关系&#…

unity学习笔记

一、Transform类 在Unity中,Transform 类是一种用于表示和操作游戏对象位置、旋转和缩放的类。每个游戏对象都有一个关联的 Transform 组件,该组件定义了对象在场景中的空间变换信息。 1.常见属性和方法 获取位置 相对与世界坐标系:Debug.…

使用Java给钉钉群发消息

目录 目录 1.安装依赖 2.编写工具类 3.测试 安全设置 Webhook 代码编写 运行测试 4.艾特全部功能 1.安装依赖 <dependency><groupId>com.taobao.dingding</groupId><artifactId>taobao-sdk</artifactId><version>1.0.0</versio…

java多线程-扩展知识三:乐观锁与悲观锁

1、悲观锁 悲观锁有点像是一位比较悲观&#xff08;也可以说是未雨绸缪&#xff09;的人&#xff0c;总是会假设最坏的情况&#xff0c;避免出现问题。 悲观锁总是假设最坏的情况&#xff0c;认为共享资源每次被访问的时候就会出现问题(比如共享数据被修改)&#xff0c;所以每次…

Windows系统搭建Appium 2 和 Appium Inspector 环境

前言 自 2022 年 1 月 1 日起&#xff0c;Appium 核心团队不再维护 Appium 1.x。官方支持的平台驱动程序的所有最新版本均不兼容 Appium 1.x&#xff0c;需要 Appium 2 才能运行。 Appium 2是一个自动化移动应用程序的开源工具&#xff0c;它带来了以下重要改进&#xff1a;  …

软件测评中心▏软件集成测试和功能测试之间的区别和联系简析

软件集成测试是在软件开发周期的后期阶段进行的测试活动&#xff0c;旨在验证系统各个组件之间的接口和交互是否正常工作。而功能测试是一种验证软件系统是否按照需求规格说明书所规定的功能进行正确实现的测试。接下来&#xff0c;我们来分别探讨一下软件集成测试和功能测试有…

hadoop安装

简介 Hadoop是一个开源的分布式存储和计算框架&#xff0c;最初由Apache软件基金会开发。它的发展背景可以追溯到Google的MapReduce和Google File System&#xff08;GFS&#xff09;的论文&#xff0c;这两篇论文启发了Hadoop的设计。Hadoop的主要应用场景包括大数据存…

rabbitmq-server-3.11.10.exe

rabbitmq需要erlang环境 otp_win64_25.1.exe erlang-CSDN博客 https://www.rabbitmq.com/download.htmlhttps://www.rabbitmq.com/install-windows.htmlhttps://github.com/rabbitmq/rabbitmq-server/releases/download/v3.11.10/rabbitmq-server-3.11.10.exe C:\Users\Admi…

使用MechanicalSoup库的爬虫程序

1. 首先&#xff0c;我们需要导入MechanicalSoup库和requests库&#xff0c;这两个库都是Python中爬虫常用的库。 2. 接着&#xff0c;我们要设置一个代理服务器&#xff0c;使用proxy_host和proxy_port参数来指定。 3. 使用requests.get方法来获取网页的HTML代码。 4. 使用Bea…

添加通信作者标记、共同作者标记

1 添加通信作者的小信封 添加包&#xff0c;2个小信息长得不太一样选一个用 % \usepackage[misc]{ifsym} \usepackage{marvosym} % 通信小信封 然后在名字后面添加\Letter Ming Li\Letter\textsuperscript{\rm 1}\

WordPress 粘贴图片上传插件

找了很久&#xff0c;发现一款不错的插件&#xff0c;允许我们直接粘贴图片文件并且上传到媒体库。以前的插件上传后媒体库不会显示&#xff0c;这个要显示。 启用后编辑器会有一个图标&#xff0c;如果开启&#xff0c;那么久可以截图后直接粘贴了。 学习资料源代码&#xf…

硬核实力,闪耀羊城!第23届广州车展完美收官,大运乘用车尽显品牌魅力

11月26日&#xff0c;第23届广州国际车展在广州圆满闭幕。作为各大车展的老朋友&#xff0c;本届广交会大运乘用车携旗下潮玩纯电越野小钢炮悦虎及大7座智能豪华纯电MPV远志M1两大明星车型闪耀全场&#xff0c;再次揽收空前关注。 当下以85、90、00后为主的年轻群体看中新能源汽…