redis基础数据结构和数据对象

本文介绍了Redis的基础数据结构,包括SDS、双链表、字典、跳跃表、整数集合和压缩列表。同时,详细阐述了这些数据结构在Redis中的应用,如字符串对象、列表对象、哈希对象、集合对象和有序集合对象的实现方式及其编码策略。
摘要由CSDN通过智能技术生成

最近学习看黄健宏先生写的《redis设计与实现》,开篇即介绍了redis的基础数据结构和数据对象,看了一遍后觉得还是有点没弄明白相互之间的关系,觉得很有必要整理一下自己的思绪。

1. redis基础数据结构

  • 简单动态字符串 -SDS
  • 双链表 -list
  • 字典 -dicht(hashtable)
  • 跳跃表 -skiplist
  • 整数集合 -intset
  • 压缩列表 -ziplist

2. redis基础数据对象

  • 字符串对象

    • raw类型
    • int 型
    • emstr型
  • 列表对象

    • ziplist
    • linkedlist
  • 哈希对象

    • ziplist
    • hashtable
  • 集合对象

    • intset
    • hashtable
  • 有序集合对象

    • ziplist
    • skiplist

3. 数据结构的详细说明

3.1 简单动态字符串 -SDS

简单动态字符串实际是对c语言char*的封装,redis实现于在sds.h中,类似于c++的string,以及stl的vector。是一种常用的封装。它是用如下的数据结构。

struct sdshdr {
    int len;     // buf 中已占用空间的长度
    int free;    // buf 中剩余可用空间的长度
    char buf[];   // 数据空间
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值