Redis原理(一) redis的内存模型

Redis最为常用的数据类型主要有以下五种:

  • String 字符串
  • Hash 哈希
  • List 列表
  • Set 集合
  • Sorted set 有序集合

丰富的类型是 Redis 相对于 Memcached 等的一大优势

redis 内部的存储结构如图示:
 redis 内部的存储结构如图示

在了解上文的基础上,进一步了解Redis 的内存模型,对 Redis 的使用有很大帮助。如:

  • 估算 Redis 内存使用量,选择合理的机器配置
  • 优化内存占用,选择最合适的数据结构和编码
  • 快速定位问题,当 Redis 出现阻塞、内存占用等问题时

本文介绍在redis3.0的版本下, Redis 占用内存的情况及如何查询、不同的对象类型在内存中的编码方式、内存分配器(jemalloc)、简单动态字符串(SDS)、RedisObject 等

Redis 内存统计

通过 redis-cli 连接服务器 。使用 info memory

info memory

返回参数解释如下:

used_memory

Redis 分配器分配的内存总量(单位是字节),包括使用的虚拟内存(即 swap)。而used_memory_human是友好显示。

used_memory_human = used_memory/1024/1024

used_memory_rss

Redis 进程占据操作系统的内存(单位是字节),与 top 及 ps 命令看到的值是一致的。包括进程运行本身需要的内存、内存碎片等,但不包括虚拟内存。

used_memory 和 used_memory_rss,前者是从 Redis 角度得到的量,后者是从操作系统角度得到的量。

二者之所以有所不同,一方面是因为内存碎片和 Redis 进程运行需要占用内存,使得前者可能比后者小,另一方面虚拟内存的存在,使得前者可能比后者大。

因此 used_memory_rss 和 used_memory 的比例,便成了衡量 Redis 内存碎片率的参数;这个参数就是 mem_fragmentation_ratio。

mem_fr
  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值