Redis设计与实现(一)——内存模型

一、Redis内存统计

Redis是一个基于内存的缓存中间件,所以,我们可能需要去查看Redis的内存使用情况,我们可以使用info命令来查看内存占用
info memory
info命令可以显示redis服务器的许多信息,包括服务器基本信息、CPU、内存、持久化、客户端连接信息等等;memory是参数,表示只显示内存相关的信息。

二、Redis内存划分

Redis是一个基于内存的中间件,所以对于我们需要存储的数据,肯定是需要占用内存的,但是Redis是一个进程,是在不断运行的,所以肯定也会有其他需要的内存

1、数据

作为缓存中间件,数据肯定会占用内存,也是主要占用内存的部分,这部分会被记录在used_memory中
Redis使用键值对存储数据,支持五种基本的类型和其他三种高级的类型,例如字符串,哈希,列表,集合,有序集合,bitmap等等,这部分是调用者看到的,但是对于这些数据类型的实现,又分为了多种编码,不同场景下会使用不同的编码,我们的Redis会将我们的数据包装成一个个的RedisObject,然后加入到内存中

2、进程本身运行需要的内存

Redis是一个进程,进程的运行是需要占用内存的,例如代码,创建子进程等

3、缓冲区

例如我们的复制时候的复制积压缓冲区,AOF缓冲区等等

4、内存碎片

当内存占用后又被销毁,这一块就没有被占用,但是提供的块太小,无法插入数据,这部分数据就无法进行有效利用,如果这一部分的占用很大,可以使用重启的方式,然后进行规整

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值