关闭

Redis源码分析(二)——Redis数据结构-链表

标签: redis数据结构源码链表typedef
1550人阅读 评论(0) 收藏 举报
分类:

这里写图片描述

数据结构——节点

typedef struct listNode{
  struct listNode *prev;
  struct listNode *next;
  void *value;
}listNode;
  • prev:链表节点的前驱
  • next:链表节点的后继
  • value:节点中的值

数据结构——链表

typedef struct list{
  listNode *head;
  listNode *tail;
  unsigned long len;
}list;
  • head:链表头节点
  • tail:链表尾节点
  • len:链表中节点个数

Redis链表的特点

  • 双向链表
  • 无环
  • 带头节点 和 尾节点
  • 多态:采用void*保存节点值,可以保存各种不同类型的值。

这里写图片描述

0
0
查看评论

【Redis笔记(四)】 Redis数据结构 - list链表

经过前面的介绍,我们学习了Redis中string字符串、hash哈希这两种数据结构的常用命令。这篇文章将介绍Redis中的list – 列表的相关操作。
  • Xiejingfa
  • Xiejingfa
  • 2016-01-24 15:29
  • 3108

redis源码分析(2)——事件循环

redis源码分析,介绍事件循环的实现
  • chosen0ne
  • chosen0ne
  • 2015-01-14 21:51
  • 3524

【Redis缓存机制】5.List链表类型介绍和操作

数据类型List链表 (1)介绍 list类型其实就是一个双向链表。通过push,pop操作从链表的头部或者尾部添加删除元素。 这使得list既可以用作栈,也可以用作队列。 该list链表类型应用场景: 获得最新的10个登录用户信息:select * from user order by l...
  • u013517797
  • u013517797
  • 2016-11-20 15:03
  • 2035

redis源码分析-ziplist(压缩链表)

ziplist结构在redis运用非常广泛,是列表、字典等数据类型的底层结构之一。ziplist的优点在于能够一定程度地节约内存。 ziplist构成ziplist结构由zip_header、zip_entry、zip_end三部分组成。 ZIP_HEADER:顾名思义,压缩列表的头部。内部包含ZI...
  • Mijar2016
  • Mijar2016
  • 2016-07-31 11:20
  • 717

Redis源码解析(二):redis之服务器-redis.c

我们一次来看这份代码,揭开redis服务器的神秘面纱。     首先是命令映射表: /*命令映射表,参数1:命令,参数2:指向实现此命令的函数,参数3:参数个数,参数4:标志位(具体信息看注释), *参数5:从参数4计算而得到的字节掩码,参数6:作为可选项的获取键值的...
  • flashflight
  • flashflight
  • 2015-03-24 00:51
  • 1969

【Redis源码剖析】 - Redis内置数据结构之压缩列表ziplist

Redis提供了一种称作ziplist的数据结构,称作压缩列表。ziplist使用一串字符串来实现双向链表结构。与list结构相比,ziplist可以减少存储空间(主要是节省了链表指针的存储空间开销),ziplist在实现上并不存储上指向上一个链表节点和指向下一个链表节点的指针,而转为存储上一个节点...
  • Xiejingfa
  • Xiejingfa
  • 2016-04-06 13:53
  • 5731

Redis源码分析(三十五)--- redis.c服务端的实现分析(2)

在Redis服务端的代码量真的是比较大,如果一个一个API的学习怎么实现,无疑是一种效率很低的做法,所以我今天对服务端的实现代码的学习,重在他的执行流程上,而对于他的模块设计在上一篇中我已经分析过了,不明白的同学可以接着看上篇。所以我学习分析redis服务端的实现也是主要从main函数开始。在分析m...
  • Androidlushangderen
  • Androidlushangderen
  • 2014-11-08 09:45
  • 5644

Redis内部数据结构详解之压缩链表(ziplist)

本文所引用的源码全部来自Redis2.8.2版本。 Redis中ziplist数据结构与API相关文件是:ziplist.h, ziplist.c, t_zset.c。 一、ziplist的构成 是一个4字节无符号整数,用来存储整个ziplist占用的字节数; 是一个4字节无符号整数,用来...
  • Acceptedxukai
  • Acceptedxukai
  • 2013-12-20 22:36
  • 10163

Redis4.0源码解析--3种线性表

笔者博客地址: https://charpty.com/blog 为了大家看整体源码方便,我将加上了完整注释的代码传到了我的github上供大家直接下载: https://github.com/charpty/redis4.0-source-reading 上一章讲了SDS动态字符...
  • zstu_cc
  • zstu_cc
  • 2017-07-01 23:23
  • 581

redis 链表操作

1  link链表结构    把值插入链表头部    lpush key value  向左边插入    lpush  character   a    rpush  c...
  • Erica_1230
  • Erica_1230
  • 2016-01-31 03:04
  • 2653
    个人资料
    • 访问:361468次
    • 积分:5639
    • 等级:
    • 排名:第5541名
    • 原创:199篇
    • 转载:8篇
    • 译文:0篇
    • 评论:155条
    我的微信公众号
      大闲人柴毛毛
      一个分享技术干货和记录程序员奋斗史的地方。快关注我吧!
    博客专栏
    最新评论