美文网首页
【redis内存模型】

【redis内存模型】

作者: 热血趁年华 | 来源:发表于2018-07-09 01:00 被阅读0次

一、内存统计命令

info memory

该命令会输出redis的相关信息,包括内存使用情况,cpu等数据

used_memory: redis内存分配器分配的内存情况,主要是数据占用的存储,单位类型是字节,

used_memory-rss: redis进程占用操作系统内存的大小,

men_fragmentation_ratio : 内存碎片比例,数值越大碎片越多,当碎片比较多的话,可以采用重启的方式(debug reload)使数据从排。正常标准是1.03

men_allcocator: 内存分配器,默认使用的时jemalloc,该分配器在减少内存碎片上处理的比较好

二、内存划分

数据

像redis中存储数据,通过对数据进行一定的包装进行存储,比如redisobject,sds

redis进程占用的内存

缓存内存

比如复制积压缓冲区,客户端缓冲区,aof缓冲区

内存碎片

当清理数据,但是redis缺无法释放数据所占有的内存,导致该内存无法被redis使用,则就会出现内存碎片

三、数据存储的细节

当向redis中存储数据的时候,首先dictEntry对象会存储数据的具体存放位置,相当于指针。redisobject具体存储键值对,该对象内部存储数据其实是用sds进行存储。

SDS

sds被称为动态字符串

struct sdshdr {

    int len;  //已经占用的长度

    int free;   //剩余的长度

    char buf[];  

};

四、优化内存方法

1.使用jemalloc内存分配器

2.使用字符串整型

3.关注内存碎片

内存碎片率是一个重要的参数,对redis 内存的优化有重要意义。

如果内存碎片率过高(jemalloc在1.03左右比较正常),说明内存碎片多,内存浪费严重;这时便可以考虑重启redis服务,在内存中对数据进行重排,减少内存碎片。

如果内存碎片率小于1,说明redis内存不足,部分数据使用了虚拟内存(即swap);由于虚拟内存的存取速度比物理内存差很多(2-3个数量级),此时redis的访问速度可能会变得很慢。因此必须设法增大物理内存(可以增加服务器节点数量,或提高单机内存),或减少redis中的数据。

要减少redis中的数据,除了选用合适的数据类型、利用共享对象等,还有一点是要设置合理的数据回收策略(maxmemory-policy),当内存达到一定量后,根据不同的优先级对内存进行回收。

相关文章

  • redis内存优化的探索和实践

    1,redis如何管理内存结构 redis内存模型: 【used_memory】:Redis内存占用中最主要的部分...

  • 面试题|Java|Redis

    Redis内存模型 Redis内存分配 数据 :Redis存储的数据对象 字符串、哈希、列表、集合、有序集合 进程...

  • java面试宝典 redis和分布式锁

    redis 是基于key-value的内存高速缓存数据库 redis 是单线程模型 redis 是单线程模型为什么...

  • Redis内存模型

    前言 Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站...

  • Redis内存模型

    Redis是目前最火的数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可或...

  • 【redis内存模型】

    一、内存统计命令 info memory 该命令会输出redis的相关信息,包括内存使用情况,cpu等数据 use...

  • Redis内存模型

    一、Redis内存统计 工欲善其事必先利其器,在说明Redis内存之前首先说明如何统计Redis使用内存的情况。 ...

  • Redis内存模型

    一、概述 Redis有五种对象类型:String,List,Set,ZSet,Hash。进一步的理解Redis的内...

  • Redis内存模型

    ​ 1、估算Redis内存使用量。目前为止,内存的使用成本仍然相对较高,使用内存不能无所顾忌;根据需求...

  • Redis 内存模型

    https://mp.weixin.qq.com/s/7pSLPQQyeqRd7SuWGu8oJg[https:/...

网友评论

      本文标题:【redis内存模型】

      本文链接:https://www.haomeiwen.com/subject/owwauftx.html