我的编程空间,编程开发者的网络收藏夹
学习永远不晚

redis清除内存碎片的方法

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

redis清除内存碎片的方法

redis清除内存碎片的方法

在Redis 4.O-RC3版本之后,Redis自身提供了一种清除内存碎片的方法

清除的原理很简单,通过复制拷贝将不连续的存放的数据搬到一起形成一块连续的内存空间,如下图:

如上图,清除之前A和B不是连续的,中间隔着两个字节空闲1,但是在执行清除内存碎片操作之后,Redis拷贝了B到空闲1,释放掉之前B的空间,此时空闲1和空闲2则变成了连续的空闲空间了。

那么问题来了,这种方式固然好,但是对于单线程的Redis来说,通过这种拷贝复制的方式显然是一种耗时的操作,性能大大降低,那么有什么好的方法呢?

Redis提供了参数配置,可以控制清除内存碎片的时机,命令如下:

config set activedefrag yes

以上命令启动自动清理,但是具体什么时候清理,还要受以下两个参数的影响:

  1. active-defrag-ignore-bytes 400mb:如果内存碎片达到了408mb,开始清理(自定义)
  2. active-defrag-threshold-lower 20:内存碎片空间占操作系统分配给Redis的总空间比例达到20%时,开始清理(自定义)

以上两个参数只有全部满足才会开始清理

除了以上触发清理内存碎片的参数,Redis还提供了两个参数来保证在清理过程中不影响处理正常的请求,如下:

1. active-defrag-cycle-min 25:表示自动清理过程所用CPU时间的比例不低于25%,保证清理能正常开展

2. active-defrag-cycle-max 75:表示自动清理过程所用CPU时间的比例不高于75%,一旦超过,就停止清理,从而避免在清理时,大量的内存拷贝阻塞 Redis,导致响应延迟升高。

以上两个参数控制了清理过程中的CPU时间占比,保证了正常处理请求不受影响

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

redis清除内存碎片的方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

redis清除内存碎片的方法

在Redis 4.O-RC3版本之后,Redis自身提供了一种清除内存碎片的方法 清除的原理很简单,通过复制拷贝将不连续的存放的数据搬到一起形成一块连续的内存空间,如下图: 如上图,清除之前A和B不是连续的,中间隔着两个字节空闲1,但是在执行清除内存碎片操作
redis清除内存碎片的方法
2016-06-23

详解如何清理Redis内存碎片

目录什么是Redis内存碎片?Redis内存碎片是如何形成的?如何判断Redis是否有内存碎片?如何清理内存碎片?内存碎片自动清理如何缓解这个问题?总结明明做了数据删除,数据量已经不大了,为什么使用 top 命令查看http://www.c
2023-04-19

Redis的内存碎片怎么避免和清理

内存碎片指的是内存中存在的一些无法被利用的碎片化空间。在Redis中,内存碎片的产生主要是由于内存的分配和释放过程中造成的。为了避免内存碎片的产生,可以采取以下措施:避免频繁的内存分配和释放操作:频繁的内存分配和释放会增加内存碎片的产生,可
Redis的内存碎片怎么避免和清理
2024-05-07

Redis内存碎片率调优处理方式

目录1.背景概述2.Redis内存碎片的形成3.清理内存碎片4.扩展MEMORY STATSMEMORY USAGEMEMORY DOCTORMEMORY MALLOC-STATSMEMORY PURGE总结1.背景概述在生产环境中Red
Redis内存碎片率调优处理方式
2024-09-30

javascript清除缓存的方法

本篇内容介绍了“javascript清除缓存的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!javascript清除缓存的方法:1、在h
2023-06-14

html清除缓存的方法

这篇文章给大家分享的是有关html清除缓存的方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。html清除缓存的方法:1、在meta标签里使用“Cache-Control”属性,语法“CONTENT="no-ca
2023-06-14

ubuntu清除缓存的方法有哪些

在Ubuntu中,可以使用以下方法清除缓存:清除apt软件包缓存:sudo apt-get clean清除apt的已下载软件包文件:sudo apt-get autoclean清除系统日志:sudo rm -rf /var/log/*清除临
ubuntu清除缓存的方法有哪些
2024-02-29

eclipse清除缓存的方法有哪些

Eclipse清除缓存的方法有以下几种:1. 清除工作区的元数据:选择菜单栏的"File" -> "Refresh",或者使用快捷键"F5",可以刷新并清除工作区的元数据缓存。2. 清除项目的构建缓存:选择菜单栏的"Project" ->
2023-09-22

SpringBoot Redis清除所有的key的实现方法

本文主要介绍了SpringBoot Redis清除所有的key的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-05-18

linux清理redis缓存的方法是什么

清理Redis缓存的方法有以下几种:使用Redis自带的命令:可以使用FLUSHALL命令来清空当前Redis实例中的所有数据。使用Redis-cli工具:可以通过连接到Redis实例,然后使用FLUSHALL命令来清空所有数据。使用Red
linux清理redis缓存的方法是什么
2024-04-15

Linux系统清除缓存的方法总结

1)缓存机制介绍在linux系统中,为了提高文件系统性能,内核利用一部分物理内存分配出缓冲区,用于缓存系统操作和数据文件,当内核收到读写的请求时,内核先bWAgBVH去缓存区找是否有请求的数据,有就直接返回,如果没有则通过驱动程序直接操作磁
2022-06-04

window清除dns缓存的方法是什么

在Windows操作系统中,清除DNS缓存的方法如下:1. 打开命令提示符:按下Win+R键,输入cmd,按下回车键。2. 输入以下命令:ipconfig /flushdns3. 按下回车键。4. 等待几秒钟,直到命令提示符窗口中显示“Wi
2023-06-12

编程热搜

目录