iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Redis进程内消耗的是什么
  • 430
分享到

Redis进程内消耗的是什么

2024-04-02 19:04:59 430人浏览 安东尼
摘要

这篇文章给大家分享的是有关Redis进程内消耗的是什么的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。Redis进程内消耗主要包括:自身内存+对象内存+缓冲内存+内存碎片。内存。因

这篇文章给大家分享的是有关Redis进程内消耗的是什么的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

Redis进程内消耗主要包括:自身内存+对象内存+缓冲内存+内存碎片。

内存。因为redis的数据都是存储在内存当中。内存数据库相比一般的关系型数据库,读取速度要更快,但是消耗的内存资源会更多。

对象内存

对象内存是Redis内存占用最大的一块,存储着用户所有的数据。Redis所有数据都采用key-value数据类型,每次创建键值对时,至少创建两个类型对象:key对象和value对象。内存消耗可以简单的理解为sizeof(keys)+sizeof(values)。键对象都是字符串,在使用Redis时很容易忽略键对内存消耗的影响,应当避免使用过长的键。value对象更复杂些,主要包括5种基本数据类型:字符串、列表、哈希、集合、有序集合。每种value对象类型根据使用规模不同,占用内存不同。在使用时一定要合理预估并监控value对象占用情况,避免内存溢出。

缓冲内存

缓冲内存主要包括:客户端缓冲、复制积压缓冲区、AOF缓冲区。

客户端缓冲指的是所有接入到Redis服务器tcp连接的输入输出缓冲。输入输出缓冲无法控制,最大空间为1G,如果超过将断开连接。输入缓冲通过参数client-output-buffer-limit控制:

1.普通客户端:除了复制和订阅的客户端之外的所有连接,Redis的默认配置是:client-output-buffer-limit nORMal 0 0 0,Redis并没有对普通客户端的输出缓冲区做限制,一般普通客户端的内存消耗可以忽略不计,但是当有大量慢连接客户端接入时这部分内存消耗就不能忽略了,可以设置maxclients做限制。注意不要只用大量数据输出的命令且数据无法及时推送给客户端,如 monitor命令,容易造成Redis服务器内存突然飙升。

从客户端:主节点会为每个从节点单独建立一条连接用于命令复制,默认配置是:client-output-buffer-limit slave 256mb 64mb 60。当主从节点之间网络延迟较高或主节点挂载大量从节点时这部分内存消耗将占用很大一部分,建议主节点挂载的从节点不要多于2个,主从节点不要部署在较差的网络环境下,如异地跨机房,防止复制客户端连接缓慢造成溢出。

订阅客户端:当使用发布订阅功能时,连接客户端使用单独的输出缓冲区,默认配置为:client-output-buffer-limit pubsub 32mb 8mb 60,当订阅服务的消息生产快于消费速度时,输出缓冲区会产生积压造成输出缓冲区空间溢出。

复制积压缓冲区:Redis在2.8版本之后提供了一个可重用的固定大小缓冲区用于实现部分复制功能,根据repl-backlog-size参数控制,默认为1MB。对于复制积压缓冲区整个主节点只有一个,所有从节点共享此缓冲区,因此可以设置较大的缓冲区空间,如100MB。

AOF缓冲区:这部分空间用于在Redis重写期间保存最近的写入命令。

3.内存碎片

Redis默认的内存分配器采用jemalloc,可选的分配器还有:glibc、tcmalloc。内存分配器为了更好地管理和重复利用内存,分配内存策略一般采用固定范围的内存块进行分配。

以下场景容易出现高内存碎片问题:

频繁做更新操作,例如频繁对已存在的键执行append、setrange等更新操作。

大量过期键删除,键对象过期删除后,释放的空间无法得到充分利用,导致碎片率上升。

感谢各位的阅读!关于Redis进程内消耗的是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!

您可能感兴趣的文档:

--结束END--

本文标题: Redis进程内消耗的是什么

本文链接: https://www.lsjlt.com/news/53373.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Redis进程内消耗的是什么
    这篇文章给大家分享的是有关Redis进程内消耗的是什么的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。Redis进程内消耗主要包括:自身内存+对象内存+缓冲内存+内存碎片。内存。因...
    99+
    2024-04-02
  • docker 查看进程, 内存, cup消耗的情况
    docker 查看进程, 内存,cup 消耗 启动 docker 容器,可以通过 docker inspect 查看进程号 # docker inspect -f '{{.Sta...
    99+
    2024-04-02
  • 怎么在Linux中找出内存消耗大的进程
    这篇文章主要讲解了“怎么在Linux中找出内存消耗大的进程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么在Linux中找出内存消耗大的进程”吧!1) 如何使用 ps 命令在 Linux ...
    99+
    2023-06-16
  • 怎么在Linux中找出内存消耗最大的进程
    这篇文章主要介绍了怎么在Linux中找出内存消耗最大的进程,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1) 如何使用 ps 命令在 Linux 中查找内存消耗最大的进程ps...
    99+
    2023-06-16
  • docker如何查看进程、内存、cup消耗的情况
    这篇文章将为大家详细讲解有关docker如何查看进程、内存、cup消耗的情况,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。docker 查看进程, 内存,cup 消耗启动 docker 容器,可以通过 d...
    99+
    2023-06-14
  • Linux系统如何查看最消耗cpu内存的进程
    这篇“Linux系统如何查看最消耗cpu内存的进程”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“Linux系统如何查看最消耗cpu内存的进程”,小编整理了以下知识点,请大家跟着小编的步伐一步一...
    99+
    2023-06-28
  • Linux系统中怎么查看最消耗CPU的进程
    这篇文章将为大家详细讲解有关Linux系统中怎么查看最消耗CPU的进程,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.CPU占用最多的前10个进程ps auxw|head -1;ps...
    99+
    2023-06-28
  • 如何理解代码的内存消耗么
    本篇内容介绍了“如何理解代码的内存消耗么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!不同语言的内存管理不同的编程语言各自的内存管理方式。C...
    99+
    2023-06-15
  • 导致JVM物理内存消耗大的Bug是怎么样的
    导致JVM物理内存消耗大的Bug是怎么样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。概述最近我们公司在帮一个客户查一个JVM的问题(JDK1.8.0_191...
    99+
    2023-06-05
  • redis消息队列是什么
    redis消息队列是什么?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!队列是一种特殊的线性表,特殊之处在于它只允许在表的前...
    99+
    2024-04-02
  • Linux中进程内核栈是什么
    这篇文章主要介绍了Linux中进程内核栈是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。什么是进程的“内核栈”?在每一个进程的生命周期中,必然会通过到系统调用陷入内核。在...
    99+
    2023-06-12
  • Redis消息队列实现的方法是什么
    Redis消息队列通常通过使用Redis的List数据结构来实现。消息生产者可以将消息推送到List中,而消息消费者可以从List中...
    99+
    2024-04-22
    Redis
  • Linux进程共享内存的方法是什么
    这篇文章主要讲解了“Linux进程共享内存的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux进程共享内存的方法是什么”吧!共享内存 IPC 原理共享内存进程间通信机制主要用...
    99+
    2023-06-28
  • Redis的内存管理机制是什么
    Redis使用一种称为"内存驱动"的内存管理机制。该机制将所有数据存储在内存中,并通过使用LRU算法(最近最少使...
    99+
    2024-05-07
    Redis
  • Linux下的进程虚拟内存结构是什么
    这篇文章主要介绍“Linux下的进程虚拟内存结构是什么”,在日常操作中,相信很多人在Linux下的进程虚拟内存结构是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linu...
    99+
    2024-04-02
  • redis是什么类型的内存数据库
    redis 是一种基于内存的开源数据库,使用键值存储模型,具有极高的读写速度。其特性包括:内存存储:数据存储在内存中,而不是磁盘上。键值存储:数据以键值对形式存储,其中键是唯一标识符,值...
    99+
    2024-04-08
  • Python的进程及进程池是什么
    这篇文章主要介绍了Python的进程及进程池是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。进程进程是操作系统分配资源的基本单元,是程序隔离的边界。进程和程序程序只是一组...
    99+
    2023-06-21
  • redis内部运作机制是什么
    本篇内容主要讲解“redis内部运作机制是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“redis内部运作机制是什么”吧!redis 就是一个数据库,不过与传统数据库不同的是 redis 的...
    99+
    2023-06-27
  • 什么是Redis多线程
    这篇文章主要介绍“什么是Redis多线程”,在日常操作中,相信很多人在什么是Redis多线程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”什么是Redis多线程”的疑惑有所帮...
    99+
    2024-04-02
  • Linux进程虚拟内存的工作机制是什么
    Linux进程的虚拟内存工作机制是基于分页和分段的。在Linux中,每个进程都有自己独立的虚拟地址空间,这个虚拟地址空间被分成多个固...
    99+
    2024-04-28
    Linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作