【redis】redis 小对象压缩

87 篇文章 8 订阅 ¥9.90 ¥99.00
Redis为了优化内存使用,采用小对象压缩如ziplist和intset存储结构,节省空间。ziplist适用于元素少的hash和zset,intset用于整数集。当元素数量或value大小超限时,会升级为标准结构。内存回收不立即归还给操作系统,但在执行flushdb后可见明显回收。Redis依赖jemalloc进行内存分配。
摘要由CSDN通过智能技术生成

在这里插入图片描述

1.概述

出自:《Redis深度历险 核心原理与应用实践》_钱文品.pdf 没法设置转载,侵权可删,仅供自己学习。

Redis 是一个非常耗费内存的数据库,它的所有数据都放在内存里。如果我们不注意节约使用内存, Redis 就可能出现内存不足,最终导致崩溃 Redis 作者为了优化数据结构的内存占用,也苦心孤诣地增加了非常多的优化点,这些优化也是以牺牲代码的可读性为代价的,但是毫无疑问,这是非常值得的,尤其像 Redis 这种数据库。

2. 32bit VS 64bit

Redis 如果使用 32bit 进行编译,内部所有数据结构所使用的指针空间占用会少一半,如果你的 Redis 使用内存不超过 4GB ,可以考虑使用 32bit 进行编译,能够节约大量内存。 4GB 的容量作为一些小型站点的缓存数据库是绰绰有余的,如果不足还可以通过增加实例的方式来解决。

3. 小对象压缩存储( ziplist)

如果 Redis 内部管理的集合数据结构很小,它会使用紧凑存储形式压缩存储。这就好比 HashMap 本来是二维结构,但是如果内部元素比较少,使用二维结构反而浪费空间,还不如使用一维数组进行存储,需要查找时,因为元素少,进行遍历也很快,甚至可以比

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九师兄

你的鼓励是我做大写作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值