简略答案:在Redis的hash结构使用ziplist编码且存储相同信息时,hash结构比sring结构更加节省内存。
1. 分析:谁更加节省内存
string结构:
可以简单任务Redis的String结构是用SDS(简单动态字符串)数据结构来实现的。
- len:buf中已占用空间的长度;
- free:buf中剩余可用空间的长度;
- buf[]:数据空间
hash结构使用ziplist结构时:
- zlbytes:32bit,表示ziplist占用的字节总数。
- zltail:32bit,表示ziplist表中最后一项(entry)在ziplist中的偏移字节数。通过zltail我们可以很方便地找到最后一项,从而可以在ziplist尾端快速地执行push或pop操作,保证了时间复杂度为O(1)
- zlen:16bit, 表示ziplist中数据项(entry)的个数。
- entry:表示真正存放数据的数据项,长度不定。