redis主要消耗什么资源


本文摘自PHP中文网,作者(*-*)浩,侵删。

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服务器内存突然飙升。

阅读剩余部分

相关阅读 >>

Redis源码是什么语言

为什么Redis是单线程,为什么这么快?

Redis两种持久化方式的区别是什么

Redis怎么通过命令行批量删除key

Redis被用来做什么

Redis数据量过大怎么办

Redis为什么要序列化

Redis默认过期时间是多少

怎样使Redis可以远程访问

学习spring session和Redis解决分布式session跨域共享问题

更多相关阅读请进入《Redis》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...