Redis基本數據結構 ― List

Redis基本數據結構 ― List

  • 介紹
  • 常用命令
  • 範例
    • 1. 將元素推入List中
    • 2. 取得List內容
    • 3. 彈出元素

介紹

  • Redis中的List結構是一個雙向鏈表

雙向鏈表示意圖

  • LPUSH + LPOP = Stack
  • LPUSH + RPOP = Queue
  • LPUSH + BRPOP = Queue(消息隊列)

常用命令

命令功能
LPUSH將元素推入列表左端
RPUSH將元素推入列表右端
LPUSHX、RPUSHX只對已存在的列表執行推入操作
LPOP彈出列表最左端的元素
RPOP彈出列表最右端的元素
RPOPLPUSH將右端彈出的元素推入左端
LLEN獲取列表的長度
LINDEX獲取指定索引上的元素
LRANGE獲取指定索引範圍上的元素
LSET為指定索引設置新元素
LINSERT將元素插入列表
LTRIM修剪列表,只保留給定範圍之內的元素
LREM從列表中移除指定元素
BLPOP阻塞式左端彈出操作
BRPOP阻塞式右端彈出操作
BRPOPLPUSH阻塞式彈出並推入操作

範例

1. 將元素推入List中

lpush key val1 val2 val3
rpush key val1 val2 val3

lpush

rpush

2. 取得List內容

lrange key start end

lrange

因為我們要看完整的List內容,所以範圍寫0 ~ -1即可。另外,因為用的是lpush,所以最早push進去的元素會在最右邊。

在这里插入图片描述

rpush則相反,最早push進去的元素會在最左邊。

lrange
在这里插入图片描述

3. 彈出元素

lpop key
rpop key

lpop & rpop
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/830322.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu20.04安装RabbitMQ 3.11.19+Erlang 25.3.1

1、检查RabbitMQ、Erlang版本 Erlang Version Requirements | RabbitMQ 2、ubuntu20.04对应的是 focal 3、下载安装Erlang 下载地址:http://packages.erlang-solutions.com/erlang/debian/pool/ sudo dpkg -i esl-erlang_25.3-1~ubuntu~focal_amd64.deb sudo apt…

C++ 如何实现原子性

1.操作系统如何实现原子性 在单处理器,单核,运行多线程的情况下,我们不使用线程同步工具, 我们会出现,线程之间会互相抢夺,临界区的资源,造成数据不符合我们预期的结果, 后面再说解决办法,那么我们怎么帮助实现原子性 1 屏蔽中断,不让线程之间切换,让它完成再切换 2 底层硬…

栈与递归的关系

定义 特点 函数调用过程 具体实现过程与状态 小结 拓展 递归的分解 典型案例

Meta应用上AI泛滥 用户抱怨:还能不能让我好好用

4 月 29 日消息,最近有报道称,Meta 在其社交平台 Facebook 和 Instagram 上大量使用生成式人工智能。但用户则反映,AI 的泛滥导致了大量垃圾信息的出现,尤其是在 Instagram 上,搜索功能被改变用途,使得用户…

第三弹:JavaScript 学习记录

目录 1.1. 了解 1.1.1. 为什么学习JavaScript 1.1.2. JavaScript简介 1.1.3. JavaScript / ECMAScript 1.1.4. JavaScript使用方式 1.1.5. JavaScript输出 1.1.6. JavaScript语句 1.1.7. JavaScript注释 1.1.8. JavaScript变量及常量 1.1.9. JavaScript数据类型 1.1.…

复杂prompt组成

chatGpt像一个具有海量知识的婴儿,了解的知识足够多,但是还不够足够智能。为了能够让gpt能精准回复,一是将问题尽可能描述清楚,帮助gpt理解问题,二是给出一些有效的筛选条件,帮助gpt去从海量知识中筛选可能…

C++实战演练---负载均衡在线oj项目预热

顾得泉:个人主页 个人专栏:《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂,年薪百万! 前言 学习准备了快一年时间,心心念念的实战演练终于可以开始了,话不多说,直接进入主题…

React、React Router 和 Redux 常用Hooks 总结,提升您的开发效率!

Hooks 是 React 16.8 中引入的一种新特性,它使得函数组件可以使用 state 和其他 React 特性,从而大大提高了函数组件的灵活性和功能性。下面分别总结React、React Router 、Redux中常用的Hooks。 常用Hooks速记 React Hooks useState:用于…

ssm088基于JAVA的汽车售票网站abo+vue

汽车售票网站的设计与实现 摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对汽车售票信息管理混乱,出错率…

基于stm32的USB模拟UART的尝试F429

目录 基于stm32的USB模拟UART的尝试F429实验目的场景使用原理图USBX 组件移植USBX实现虚拟串口配置USB移植USBX源码工程中添加对应源码修改usb_otg.c创建 USBX 任务添加使用串口的代码上机现象本文中使用的测试工程 基于stm32的USB模拟UART的尝试F429 本文目标:基于…

uniapp-vue3-wechat:基于uniapp+vue3仿微信app聊天实例(H5+小程序+App端)

uni-vue3-wchat:基于uni-appvue3pinia2高仿微信app聊天模板。 原创基于最新跨端技术uni-appvue3.xpinia2vite4uv-ui构建三端仿微信app界面聊天实例。实现编辑框多行消息/emoj混合、长按触摸式仿微信语音面板、图片/视频预览、红包/朋友圈等功能。支持编译到H5小程序…

Json(标题)

json是一种用于发送和接收结构化信息的标准协议 类似的还有XML,ASN.1 Go语言对这些标准格式和编码都有良好的支持 encoding/xml ,encoding/json json可以表示字符串,数字,布尔值和对象 boolean true number -273.15 string …

Java 笔记 09:Java 流程控制相关,常见的三种控制结构(顺序、选择、循环)

一、前言 记录时间 [2024-04-29] 系列文章简摘: Java 笔记 01:Java 概述,MarkDown 常用语法整理 Java 笔记 02:Java 开发环境的搭建,IDEA / Notepad / JDK 安装及环境配置,编写第一个 Java 程序 Java 笔记 …

数据结构与算法-抽象数据类型ADT系列

以前在学习数据结构的时候做实验,老师要求用ADT抽象数据类型来写这些实现代码。后面也要复习数据结构,在这里就先放下链接。不过以前学习的时候使用的编程语言是C,里面会用到很多指针。现在编代码过程大多数时候都是用Java。不过思路应该还是…

keytool,openssl的使用

写在前面 在生成公钥私钥,配置https时经常需要用到keytool,openssl工具,本文就一起看下其是如何使用的。 keytool是jdk自带的工具,不需要额外下载,但openssl需要额外下载 。 1:使用keytool生成jks私钥文件…

WEB攻防-IIS中间件PUT漏洞

IIS6.0 server在web服务扩展中开启了WebDAV(Web-based Distributed Authoring and Versioning)。WebDAV是一种HTTP1.1的扩展协议。它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,如PUT&#xff0c…

从事plc工资多少?是不是没前途?

60%以上的人都是8-15K之间吧 应届生刚入行正常就8-10k的样子,根据工龄和经验的增加会慢慢涨,但多大数人也就到15k。 如果做的确实比较好,能力突出的也有20k25k30k的,20k就不说了还正常,30k以上那就算是翘楚了属于行业…

system-auth与password-auth的区别

/etc/pam.d/system-auth和/etc/pam.d/password-auth是两个不同的PAM配置文件,它们在系统上的作用和功能略有不同。 /etc/pam.d/system-auth配置文件是系统的全局认证配置文件,通常包含系统范围内适用的认证规则和策略。这个文件会被其他PAM配置文件引用&…

自动驾驶横向控制算法

本文内容来源是B站——忠厚老实的老王,侵删。 三个坐标系和一些有关的物理量 使用 frenet坐标系可以实现将车辆纵向控制和横向控制解耦,将其分开控制。使用右手系来进行学习。 一些有关物理量的基本概念: 运动学方程 建立微分方程 主要是弄…

Linux进程——进程的概念(PCB的理解)

前言:在了解完冯诺依曼体系结构和操作系统之后,我们进入了Linux的下一篇章Linux进程,但在学习Linux进程之前,一定要阅读理解上一篇内容,理解“先描述,再组织”才能更好的理解进程的含义。 Linux进程学习基…