Redis 数据结构

Redis 基本数据结构

Redis 有 5 种数据结构:string (字符串)、list (列表)、set (集合)、hash (哈希) 和 zset (有序集合)。

string

Redis 所有的数据结构都是以唯一的 key 字符串作为名称,然后通过这个唯一 key 值来获取相应的 value 数据。不同类型的数据结构的差异就在于 value 的结构不一样。

list

链表。当列表弹出了最后一个元素之后,该数据结构自动被删除,内存被回收。

hash

字典的值只能是字符串。

set

相当于一个特殊的字典,字典中所有的 value 都是一个值 NULL。

zset

一个 set,保证了内部 value 的唯一性,另一方面它可以给每个 value 赋予一个 score,代表这个 value 的排序权重。它的内部实现用的是一种叫着跳跃列表的数据结构。

Redis 数据结构图

Redis数据结构

SDS

Redis 封装了一个简单动态字符串(simple dynamic string,SDS) 的数据结构来表示字符串。

字段 解释
len 字符串长度
alloc 分配的空间长度
flags sds类型
buf[] 字节数组

链表

typedef struct listNode {
   
     //前置节点
     struct listNode *prev;
     //后置节点
     struct listNode *next;
     //节点的值
     void *value;
} listNode;

typedef struct list {
   
     //链表头节点
     listNode *head;
     //链表尾节点
     listNode *tail;
     //节点值复制函数
     void *(*dup)(</
  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值