美文网首页
Redis' lists

Redis' lists

作者: GrooveWind | 来源:发表于2017-03-02 15:45 被阅读0次

Redis列表基本操作命令

命令 行为
LPUSH 将值设在列表头部
RPUSH 将值设在列表尾部
LPOP 将列表头部值推出
RPOP 将列表尾部值推出
LRANGE 获取列表在给定范围上的所有元素
LINDEX 获取列表在给定位置上的单个元素

Redis list底层结构

Redis list由链表来实现。在Redis中链表的应用非常广泛,包括但不限于:链表键、发布/订阅、慢查询、监视器等。Redis服务器本身还使用链表来保存多个客户端的状态信息、以及使用链表来构建客户端输出缓冲区。
链表节点的结构体表示为:
typedef struct listNode { struct listNode *prev; struct listNode *next; void *value; } listNode;
很明显,listNode可以构造出双向链表。
通过list来封装listNode,可以使得操作更加方便:
typedef struct list { listNode *head; listNode *tail; unsigned long len; // 链表包含的节点数量 void *(*dup)(void *ptr); // 节点值复制函数 void *(*free)(void *ptr); // 节点值释放函数 int (*match)(void *ptr, void *key); // 节点值对比函数 } list;

Redis链表的优势

  • 获取某个节点的前置节点和后置节点的复杂度都是O(1)
  • 获取头节点和尾节点的复杂度都是O(1)
  • 无环
  • 多态,方便存储各种类型的值

相关文章

  • Redis' lists

    Redis列表基本操作命令 Redis list底层结构 Redis list由链表来实现。在Redis中链表的应...

  • Redis数据结构 之 Lists

    本文的示例代码参考redis-lists.py Python Python环境搭建详细参考pyenv Redis ...

  • Go-Redis

    Redis支持的数据结构 Redis支持诸如字符串(strings)、哈希(hashes)、列表(lists)、集...

  • Redis命令:Lists

    Lists是一组有序、可重复的元素集合。 LPUSH/RPUSH分别在队首(左侧)和队尾(右侧)插入指定元素。如果...

  • Redis数据结构解析

    本文源码解析部分内容摘自《Redis设计与实现》 Redis数据结构 字符串(Strings) 列表(Lists)...

  • Redis的安装和部署

    Redis的安装和部署 基本知识 Redis的数据类型:字符串、列表(lists)、集合(sets)、有序集合(s...

  • Redis命令详解:Lists

    List是Redis的基础数据类型之一,类似于Java中的LinkedList。一个列表最多包含232个元素,常被...

  • 到信息源头去

    面试官:redis包含哪些数据结构啊? 我:strings 、lists、sets、sorted sets、has...

  • 解锁Redis各种姿势-Hashes(哈希表)

    Redis 支持的数据结构包括 字符串(strings), 散列(hashes), 列表(lists), 集合(s...

  • 用了这么久redis,你了解几种redis数据类型

    简单介绍一下redis的几种数据类型: Strings,Lists,Sets, Hashe,Sorted sets...

网友评论

      本文标题:Redis' lists

      本文链接:https://www.haomeiwen.com/subject/owmxgttx.html