为什么要用Redis压缩表,是快吗?

论坛 期权论坛 脚本     
已经匿名di用户   2022-7-2 22:15   4332   0

首先需要了解什么是压缩表,推荐Redis设计与实现第二版:https://www.w3cschool.cn/hdclil/gcqrlcqm.html

为什么要用压缩表呢?是快吗?

其实不是的,恰恰相反,ziplist 是为了节省内存而设计出来的一种数据结构。ziplist 与普通的双端列表不同的是,双端列表保存了前后指针,在Redis,一个指针是占了8个字节的。而

ziplist是维护了上一个节点的长度和当前节点的长度,然后每次通过长度来计算出前后节点的位置。

ziplist涉及计算,肯定有性能上的损耗,所以ziplist并不快,但是它比双端列表少了前后指针,在空间上节省了。所以是一种时间换空间的策略。

为什么在Redis,一个指针是占了8个字节?

又又又又涉及到知识盲区了。。。。在这片文章中找到了答案:https://www.jianshu.com/p/14b4bc2a76cc

因为现在的电脑最大为64位,那么Rerdis中的指针的存储空间必须是大于等于64bit(位),也就是8个字节,少一个bit,都不能完整的表示完所有的寻址范围,因此就是8个字节。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP