Redis 学习 ---- 3.链表 Linked List
2016-03-17 10:52
746 查看
链表结点使用一个adlist.h/listNode结构来表示:
adlist.h/list来持有链表:
链表被广泛用于实现Redis的各种功能,比如列表键、发布与订阅、慢查询、监视器等。
Redis链表的特性:
1.双端:获取prev结点和next结点的复杂度O(1)
2.无环:头结点prev指针指向NULL,尾结点next指针指向NULL
3.head指针和tail指针:程序获取头结点和尾结点的复杂度为O(1)
4.len属性:获取结点数量的复杂度为O(1)
5.void 可以保存不同类型的值
typedef struct listNode { struct listNode *prev; // 前置结点 struct listNode *next; // 后置结点 void *value; // 值 }listNode;
adlist.h/list来持有链表:
typedef struct list{ listNode *head; // 头结点 listNode *tail; // 尾结点 unsigned long len; // 结点数量 void *(*dup)(void *ptr); // 复制函数 void (*free)(void *ptr); // 释放函数 int (*match)(void *ptr,void *key) // 对比函数 }
链表被广泛用于实现Redis的各种功能,比如列表键、发布与订阅、慢查询、监视器等。
Redis链表的特性:
1.双端:获取prev结点和next结点的复杂度O(1)
2.无环:头结点prev指针指向NULL,尾结点next指针指向NULL
3.head指针和tail指针:程序获取头结点和尾结点的复杂度为O(1)
4.len属性:获取结点数量的复杂度为O(1)
5.void 可以保存不同类型的值
相关文章推荐
- 深入理解Redis主键失效原理及实现机制
- Redis安装配置
- Redis 学习 ---- 1.引言
- Redis 主从配置和参数详解
- PHP-redis中文说明
- Redis学习(一)-基础理论、字符串命令、列表结构
- CentOS6.5下redis安装部署配置指南、常用命令、主从同步集群、redis-php学习资料整合详解
- windows下安装redis服务 AND PHP中添加扩展 AND PHP中使用
- redis 在spring boot工程中的应用(四) 图片的读取与缓存 byte string
- redis 在spring boot工程中的应用(三) 问题发现与解决 :反序列化 报错
- 常用的 redis操作
- java(优化12) 15天玩转redis之第六篇
- Redis提供商配置ASP.NET会话状态
- redis学习笔记2--命令返回值
- 重温redis--redis在springmvc下的使用
- redis主从配置
- Redis主从配置
- Apache-Shiro分布式环境配置(与redis集成)
- redis
- Redis for .NET 系列之实现分页需求