Redis列表类型(list)模拟队列操作

news2024/12/22 19:20:24

文章目录

  • Redis列表类型模拟队列操作
  • 1. 使用用lpush和rpop模拟队列的操作
    • 1.1 lpush介绍
    • 1.2 rpop介绍
    • 1.3 llen介绍
    • 1.4 lrange介绍
    • 1.5 del命令介绍
  • 2. 使用用rpush和lpop模拟队列的操作
    • 2.1 rpush介绍
    • 2.2 lpop介绍

Redis列表类型模拟队列操作

Redis的列表类型(list)可以存储一个有序的字符串列表。

  • 列表类型内部是使用双向链表实现的
  • 可以使用lpush和rpop或者rpush和lpop模拟队列的操作

1. 使用用lpush和rpop模拟队列的操作

在这里插入图片描述

127.0.0.1:6379> lpush books java
(integer) 1
127.0.0.1:6379> lpush books python
(integer) 2
127.0.0.1:6379> lpush books c++ golang
(integer) 4
127.0.0.1:6379> llen books
(integer) 4
127.0.0.1:6379> lrange books 0 -1
1) "golang"
2) "c++"
3) "python"
4) "java"
127.0.0.1:6379> rpop books
"java"
127.0.0.1:6379> rpop books
"python"
127.0.0.1:6379> llen books
(integer) 2
127.0.0.1:6379> lrange books 0 -1
1) "golang"
2) "c++"
127.0.0.1:6379> del books
(integer) 1
127.0.0.1:6379> lrange books 0 -1
(empty list or set)

1.1 lpush介绍

lpush表示从从列表左边添加元素,返回值表示增加元素后列表的长度。

127.0.0.1:6379> lpush books java
(integer) 1
127.0.0.1:6379> lpush books python
(integer) 2

lpush也可以同时添加多个元素,如

127.0.0.1:6379> lpush books c++ golang
(integer) 4

1.2 rpop介绍

rpop表示从右侧元素列表中移除元素,返回被移除的元素。

127.0.0.1:6379> rpop books
"java"

1.3 llen介绍

llen返回列表的长度

127.0.0.1:6379> llen books
(integer) 4

1.4 lrange介绍

lrange返回指定区间的元素,0代表列表的第一个元素,1代表列表的第2个元素,以此类推;也支持负数,-1代表列表的最后一个元素,-2代表列表的倒数第2个元素以此类推。

127.0.0.1:6379> lrange books 0 -1
1) "golang"
2) "c++"
3) "python"
4) "java"

1.5 del命令介绍

del删除list列表所有元素

127.0.0.1:6379> del books
(integer) 1
127.0.0.1:6379> lrange books 0 -1
(empty list or set)

2. 使用用rpush和lpop模拟队列的操作

在这里插入图片描述

127.0.0.1:6379> rpush books java
(integer) 1
127.0.0.1:6379> rpush books python c++
(integer) 3
127.0.0.1:6379> rpush books golang
(integer) 4
127.0.0.1:6379> llen books
(integer) 4
127.0.0.1:6379> lrange books 0 -1
1) "java"
2) "python"
3) "c++"
4) "golang"
127.0.0.1:6379> lpop books
"java"
127.0.0.1:6379> llen books
(integer) 3
127.0.0.1:6379> lrange books 0 -1
1) "python"
2) "c++"
3) "golang"

2.1 rpush介绍

rpush表示从从列表右边添加元素,返回值表示增加元素后列表的长度。

127.0.0.1:6379> rpush books java
(integer) 1

rpush也可以同时添加多个元素,如

127.0.0.1:6379> rpush books python c++
(integer) 3

2.2 lpop介绍

lpop表示从左侧元素列表中移除元素,返回被移除的元素。

127.0.0.1:6379> lpop books
"java"

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

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

相关文章

JavaScript 中内存泄漏的几种情况?

一、是什么 内存泄漏(Memory leak)是在计算机科学中,由于疏忽或错误造成程序未能释放已经不再使用的内存 并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失…

emoji表情符号,unicode表情符号

目录 😎前言👨‍💻使用✈️Unicode 1.1 版本新增☙ Unicode 3.0 版本新增♻️Unicode 3.2 版本新增☕Unicode 4.0 版本新增🀨Unicode 5.1 版本新增⚽ Unicode 5.2 版本新增🌊Unicode 6.0 版本新增😙Unicode…

集合专题----List篇

1、Collection常用方法 package com.example.collection.Collection;import java.util.ArrayList; import java.util.List;public class Collection03 {public static void main(String[] args) {List list new ArrayList();//接口可以指向实现该接口的类//add:添加单个元素l…

BEVFromer论文研读

1. 总体结构 上图为BEVFormer在t时刻的网络结构。图(a) 表示的是BEVFormer的encoder层。BEVFormer有6个encoder层,每一个encoder除了本文自定义的三个组件外都和传统的transformers结果一致。自定义的三个组件分别是网格状的BEV queries,TSA和SCA。其中B…

【智慧交通项目实战】 《 OCR车牌检测与识别》(三):基于改进CRNN的车牌识别

👨‍💻作者简介: CSDN、阿里云人工智能领域博客专家,新星计划计算机视觉导师,百度飞桨PPDE,专注大数据与AI知识分享。✨公众号:GoAI的学习小屋 ,免费分享书籍、简历、导图等&#xf…

接口测试实战篇,吐血整理汇总,接口测试你知多少?

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 接口测试&#xf…

网络安全应急响应最全教学从懵懂—入门—精通(2023年6月)

目录 0、写在前面1、概念及应急响应流程2、Windows排查2.1文件排查2.2、进程排查2.3、系统信息排查2.4、工具排查2.5、日志排查 3、Linux排查3.1、文件排查3.2、进程排查3.3、系统信息排查3.4、后门排查3.5、日志排查3.5.1、基于时间的日志管理3.5.2、系统日志管理3.5.3、中间件…

计算机毕业论文内容参考|基于网络的打印机数据传输系统的设计与实现

文章目录 导文前言绪论课题背景国内外现状与趋势课题内容相关技术与方法介绍系统分析系统设计系统实现系统测试总结与展望导文 计算机毕业论文内容参考|基于网络的打印机数据传输系统的设计与实现 前言 打印机是现代办公和生活中不可或缺的设备之一,随着信息化和网络化的发展…

常用激活函数及偏导

常用激活函数及偏导 derivative.py import numpy as np import matplotlib.pyplot as pltplt.subplots_adjust(hspace0.5 , wspace0.5) rows 3 cols 2def plot_style(ax):# 设置轴隐藏ax.spines[top].set_visible(False) ax.spines[right].set_visible(False)# 设置轴位置ax.…

python 创建二维列表【空列表或定长列表】

正确写法: 空列表设置了初始值的定长列表 ### 创建3行的二维空列表 ### a [[] for i in range(3)] print(a) # [[], [], []]### 每一行非空,并设定初始值及其长度 ### ### 创建3行,每一行列表初始化全0的列表,且长度为5 ### a…

Redis 实现库存扣减

在日常开发中有很多地方都有类似扣减库存的操作,比如电商系统中的商品库存,抽奖系统中的奖品库存等。这次分享的是库存的操作怎么防止商品被超卖。 解决方案 基于数据库单库存基于数据库多库存基于redis 解决思路 使用mysql数据库,使用一个…

[架构之路-216]- 架构 - 概念架构 - 模块(Module)、组件(Component)、包(Package)、对象、函数的区别

前言: 在软件架构中,一个重要的任务就是切分系统,而切分系统进程涉及到一个基本的概念,如模块(Module)、组件(Component)、包(Package)、对象,本…

亚马逊云科技以用户为中心,持续丰富安全服务和解决方案

AI加持安全,自动化运营成未来趋势 亚马逊云科技始终在云安全领域不断创新探索、深耕发力,随着全球技术的发展而持续迭代安全能力。 当下,以ChatGPT为代表的AIGC成为最出圈的热点,大量的科技巨头纷纷涌入AI赛道,投入了…

16. WebGPU 数据内存布局

在 WebGPU 中,提供给它的几乎所有数据都需要在内存中设定布局,以匹配在着色器中定义的内容。这与 JavaScript 和 TypeScript 形成鲜明对比,后者很少出现内存布局问题。 在 WGSL 中,当编写着色器时,通常定义 struct 。…

Redis集群详解

目录 一、前言二、Redis 集群方案应该怎么做?都有哪些方案?三、twemproxy四、分而治之-codis1、codis简介2、Codis 分片原理3、不同的 Codis 实例之间槽位关系如何同步?4、假如Redis扩容,如何调整槽位的?5、codis优缺点…

巧用 overflow-scroll 实现丝滑轮播图

前言: 近期我在项目中就接到了一个完成轮播图组件的需求。最开始我也像大家一样,直接选择使用了知名的开源项目 “Swiper”,但是后来发现它在移动端项目中某些测试环境下会白屏一段时间。无论如何调试都不能修复这个问题,于是就自己上手写了个…

Java智慧工厂UWB高精度人员定位管理系统源码

一、系统概述: 智慧工厂高精度定位管理系统源码,采用UWB定位技术,通过部署UWB定位设备实现人、车、物精确定位,打造可寻、可视、可防、可控的一体化管控平台。UWB定位系统具有容量大、稳定性强、精度高、安装便捷、易维护、操作简…

pebblely无需代码连接集简云数据表的方法

1 使用场景 当电商UI接到一个设计产品图的需求时,按照常规的工作安排,从对接需求到最后完成效果图最短时间都要在5天左右,如果遇到高要求的客户,后期还需要在电脑上进一步调整细节,一张成片起码要花上数小时时间去完成…

LabVIEW开发压电陶瓷特性测试系统

LabVIEW开发压电陶瓷特性测试系统 目前,随着科学技术的飞速发展,各个领域都需要纳米级的精密定位系统。而压电定位系统是迄今为止已经得到认可的微纳定位系统。该系统主要由压电驱动系统、位移测量传感器和控制系统组成。其中,整个压电驱动系…

oracle 使用sql语句实现交换一个表中两条记录的某个字段的内容

不要太忙了 好好珍惜眼下 的真爱 (马晓静sorry~) 表 test --------------- id | i_order --------------- 1 | 22 2 | 23 --------------- 转换后结果为: --------------- id | i_order --------------- 1 | 23 2 | …