redis数据结构简介

redis-数据结构

String :  key:value      : 底层实现 : sds  整数集合

 list    : key:[value]          :底层实现 :双端链表 压缩链表

hash  : key: [field:value][field:value][field:value] :底层实现 : 压缩链表  字典

set   : key:[value(不重复)]   :底层实现 :字典  整数集合

zset  : key:[value(不重复有序)]   : 底层实现 :跳跃链表  sds

1.sds:

简单动态字符串 :buf:char数组  len:已占用长度  free:剩余可用长度

sdshdr{

//已占用长度

int len;

//剩余可用长度

int free

//char数组

char[] buf;

}

当字符串进行append操作时,不需要每次都进行内存的重新分配。 

2.压缩链表

一块连续的内存结构快,适合保存整数和受限字符数组,省掉了前驱和后驱指针,通过计算节点的长度来遍历。

node{

//前面一个节点的总长

pre_entry_length

//当前节点的编码

encoding

//当前节点内容的长度

length

当前节点的内容

content

}

3.双端链表

标准的双向链表

node{

//前驱

pre

//后驱

next

//内容

content

}

4.字典

参照倒排索引

5.跳跃链表

结构与双向链表一样,但将双向链表分层,存有序的数据。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值