Redis——list以及他的应用场景

  1. 介绍list 即是 链表。链表是一种非常常见的数据结构,特点是易于数据元素的插入和删除并且且可以灵活调整链表长度,但是链表的随机访问困难。许多高级编程语言都内置了链表的实现比如 Java 中的 LinkedList,但是 C 语言并没有实现链表,所以 Redis 实现了自己的链表数据结构。Redis 的 list 的实现为一个 双向链表,即可以支持反向查找和遍历,更方便操作,不过带来了部分额外的内存开销。

  2. 常用命令: rpush,lpop,lpush,rpop,lrange、llen 等。

  3. 应用场景: 发布与订阅或者说消息队列、慢查询。

通过 rpush/lpop 实现队列:

1.先添加元素 

127.0.0.1:6379> rpush myList value1 # 向 list 的头部(右边)添加元素
(integer) 1
127.0.0.1:6379> rpush myList value2 value3 value4 # 向list的头部(最右边)添加多个元素
(integer) 4
 

2.通过 lrange myList 0 1 实现一次分页(为第一页),lrange myList 2 3(为第二页)

127.0.0.1:6379> lrange myList 0 1 # 查看对应下标的list列表, 0 为 start,1为 end
1) "value2"
2) "value3"
127.0.0.1:6379> lrange myList 0 -1 # 查看列表中的所有元素,-1表示倒数第一
1) "value2"
2) "value3"

通过 rpush/rpop 实现栈:

127.0.0.1:6379> rpush myList2 value1 value2 value3
(integer) 3
127.0.0.1:6379> rpop myList2 # 将 list的头部(最右边)元素取出
"value3"

通过 lrange 查看对应下标范围的列表元素:

127.0.0.1:6379> rpush myList value1 value2 value3
(integer) 3
127.0.0.1:6379> lrange myList 0 1 # 查看对应下标的list列表, 0 为 start,1为 end
1) "value1"
2) "value2"
127.0.0.1:6379> lrange myList 0 -1 # 查看列表中的所有元素,-1表示倒数第一
1) "value1"
2) "value2"
3) "value3"

通过 lrange 命令,你可以基于 list 实现分页查询,性能非常高!

通过 llen 查看链表长度:

127.0.0.1:6379> llen myList
(integer) 3

相关推荐

  1. vuex是什么?如何使用?使用功能场景

    2024-01-25 21:28:01       11 阅读
  2. vuex是什么?如何使用?使用功能场景

    2024-01-25 21:28:01       12 阅读
  3. 前端实现websocket应用场景以及逻辑实现

    2024-01-25 21:28:01       34 阅读
  4. Redis应用场景以及常见问题(持续更新)

    2024-01-25 21:28:01       19 阅读
  5. String、StringBuilder和StringBuffer区别以及应用场景

    2024-01-25 21:28:01       20 阅读
  6. ArrayList和LinkedList区别,以及应用场景

    2024-01-25 21:28:01       22 阅读
  7. springbean加载过程以及应用场景

    2024-01-25 21:28:01       14 阅读
  8. 序列化机制以及应用场景

    2024-01-25 21:28:01       40 阅读

最近更新

  1. 贪心算法-以高校教材管理系统为例

    2024-01-25 21:28:01       0 阅读
  2. 使用 .NET 实现 MongoDB

    2024-01-25 21:28:01       0 阅读
  3. ES5/ES6补充笔记

    2024-01-25 21:28:01       0 阅读
  4. Conda Channels全掌握:Linux中添加与移除的艺术

    2024-01-25 21:28:01       0 阅读
  5. Jetson-AGX-Orin离线安装nvidia-jetpack

    2024-01-25 21:28:01       1 阅读
  6. 2024前端面试真题【CSS篇】

    2024-01-25 21:28:01       1 阅读
  7. 如何使用echart画k线图

    2024-01-25 21:28:01       1 阅读

热门阅读

  1. 【家庭版windows远程桌面连接攻略】

    2024-01-25 21:28:01       38 阅读
  2. layui select onchange事件处理

    2024-01-25 21:28:01       35 阅读
  3. 【dpdk】Getting Started Guide for Linux DPDK

    2024-01-25 21:28:01       35 阅读
  4. 【MySQL】表列数和行大小限制详解

    2024-01-25 21:28:01       36 阅读
  5. C++面试题

    2024-01-25 21:28:01       35 阅读
  6. SQL 系列教程(一)

    2024-01-25 21:28:01       34 阅读
  7. 程序员需要关注的事情

    2024-01-25 21:28:01       34 阅读
  8. php 面向对象与反序列

    2024-01-25 21:28:01       30 阅读
  9. 写一个内存报警脚本

    2024-01-25 21:28:01       40 阅读
  10. day01 二分,移除元素

    2024-01-25 21:28:01       39 阅读