【Java进阶营】Redis中String和Hash哪个结构更加省内存

Redis中,使用ziplist编码的Hash结构比String结构更省内存。String每个记录包含len和free,而ziplist紧凑存储数据,仅需少量标识位。当hash内层field-value数量≤512且value字节≤64时,Redis倾向于使用ziplist编码,以节省内存,尽管查询可能消耗更多CPU。
摘要由CSDN通过智能技术生成

简略答案:在Redis的hash结构使用ziplist编码且存储相同信息时,hash结构比sring结构更加节省内存。

1. 分析:谁更加节省内存

string结构:

可以简单任务Redis的String结构是用SDS(简单动态字符串)数据结构来实现的。

image

  • len:buf中已占用空间的长度;
  • free:buf中剩余可用空间的长度;
  • buf[]:数据空间

hash结构使用ziplist结构时:

image

  • zlbytes:32bit,表示ziplist占用的字节总数。
  • zltail:32bit,表示ziplist表中最后一项(entry)在ziplist中的偏移字节数。通过zltail我们可以很方便地找到最后一项,从而可以在ziplist尾端快速地执行push或pop操作,保证了时间复杂度为O(1)
  • zlen:16bit, 表示ziplist中数据项(entry)的个数。
  • entry:表示真正存放数据的数据项,长度不定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值