Redis 内存容量的预估和优化

本文探讨了Redis中string和zipmap数据结构的内存预估和优化策略。通过调整REDIS_SHARED_INTEGERS宏,减少小数值的内存占用,并详细解析了string类型内存计算公式。此外,还分析了zipmap的内存效率,指出其在超过一定数量subkey后的性能问题,并讨论了潜在的解决方案。
摘要由CSDN通过智能技术生成

Redis 是个内存全集的 kv 数据库,不存在部分数据在磁盘部分数据在内存里的情况,所以提前预估和节约内存非常重要。本文将以最常用的 string 和 zipmap 两类数据结构在 jemalloc 内存分配器下的内存容量预估和节约内存的方法.阿Test:百万up主的涨粉秘诀

先说说 jemalloc, 传说中解决 firefox 内存问题 freebsd 的默认 malloc 分配器,area,thread-cache 功能和 tmalloc 非常的相识。在 2.4 版本被 Redis 引入,在antirez 的博文 
中 提到内节约 30% 的内存使用。相比 glibc 的 malloc 需要在每个内存外附加一个额外的 4 字节内存块,jemalloc 可以通过 je_malloc_usable_size 函数获得指针实际指向的内存大小,这样 Redis 里的每个 key 或者 value 都可以节约 4 个字节,不少阿.

下面是 jemalloc size class categories, 左边是用户申请内存范围,右边是实际申请的内存大小。这张表后面会用到.

1     - 4     size class:4
5     - 8     size class:8
9     - 16    size class:16
17    - 32    size class:32
33    - 48    size class:48
49    - 64    size class:64
65    - 80    size class:80
81    - 96    size class:96
97    - 112   size class:112
113   - 128   size class:128
129   - 192   size class:192
193   - 256   size class:256
257   - 320   size class:320
321   - 384   size class:384
385   - 448   size class:448
449   - 512   size class:512
513   - 768   size class:768
769   - 1024  size class:1024
1025  - 1280  size class:1280
1281  - 1536  siz
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值