当前位置: 首页 > news >正文

4 Redis4 List命令类型讲解

Redis 列表(List)命令详解

1. Redis 列表(List)简介

Redis 列表(List)是一个简单的字符串列表,按照插入顺序排序。它可以用作 栈(Stack)队列(Queue),提供了丰富的操作方式。Redis 列表的底层实现是一个 双向链表,因此在头部和尾部的操作非常高效。

2. Redis List 相关命令

2.1 添加元素

命令描述
LPUSH key value [value ...]将一个或多个值插入到列表头部
RPUSH key value [value ...]将一个或多个值插入到列表尾部
LPUSHX key value只有在列表存在时,才将值插入到列表头部
RPUSHX key value只有在列表存在时,才将值插入到列表尾部
示例:
LPUSH mylist "a" "b" "c"   # 列表头部插入 c, b, a
RPUSH mylist "x" "y" "z"   # 列表尾部插入 x, y, z
LRANGE mylist 0 -1          # 查看列表所有元素

结果:

"c" "b" "a" "x" "y" "z"

2.2 获取列表元素

命令描述
LRANGE key start stop获取列表指定范围的元素
LINDEX key index获取列表中指定索引的元素
LLEN key获取列表长度
示例:
LRANGE mylist 1 3   # 获取索引 1 到 3 之间的元素
LINDEX mylist 2     # 获取索引 2 的元素
LLEN mylist         # 获取列表长度

2.3 修改和删除元素

命令描述
LSET key index value通过索引设置列表元素的值
LREM key count value移除列表中 count 个值等于 value 的元素
LTRIM key start stop修剪列表,使列表只保留指定范围内的元素
示例:
LSET mylist 2 "new_value"  # 将索引 2 的元素设置为 "new_value"
LREM mylist 1 "a"         # 删除一个值为 "a" 的元素
LTRIM mylist 1 3          # 只保留索引 1 到 3 之间的元素

2.4 移除和弹出元素

命令描述
LPOP key移除并返回列表的第一个元素
RPOP key移除并返回列表的最后一个元素
RPOPLPUSH source destination移除 source 列表的最后一个元素,并将该元素添加到 destination 列表的头部
BLPOP key [key ...] timeout阻塞式移除并返回列表的第一个元素(如果列表为空则等待)
BRPOP key [key ...] timeout阻塞式移除并返回列表的最后一个元素(如果列表为空则等待)
BRPOPLPUSH source destination timeout阻塞式弹出一个值,并推入另一个列表
示例:
LPOP mylist         # 移除并获取第一个元素
RPOP mylist         # 移除并获取最后一个元素
RPOPLPUSH mylist newlist  # 将 mylist 的最后一个元素移到 newlist 的头部
BLPOP mylist 5      # 如果列表为空,则等待 5 秒,直到有元素可弹出

3. Redis List 适用场景

  1. 消息队列:使用 LPUSH + BRPOP 实现生产者-消费者模式。

  2. 任务队列:可用于处理异步任务,将任务存入列表,然后异步消费。

  3. 排行榜:可以用 LPUSH 添加数据,LRANGE 获取排行榜前 N 名。

  4. 最近访问记录:存储用户最近的操作记录,使用 LPUSH 插入,LTRIM 只保留最新的 N 条。


4. 总结

Redis 列表(List)提供了丰富的操作,适用于多种场景。掌握 LPUSHRPUSHLPOPRPOPBLPOP 等命令,可以在实际项目中高效使用 Redis 处理队列和有序数据。

希望这篇文章能帮助你更好地理解和使用 Redis 列表!

相关文章:

4 Redis4 List命令类型讲解

Redis 列表(List)命令详解 1. Redis 列表(List)简介 Redis 列表(List)是一个简单的字符串列表,按照插入顺序排序。它可以用作 栈(Stack) 和 队列(Queue&…...

CentOS 7 安装 Redis6.2.6

获取资源、下载安装 Redis6.2.6 安装Redis6.2.6 上传到服务器或直接下载(wget http://download.redis.io/releases/redis-6.2.6.tar.gz)、再解压安装 tar -zxvf redis-6.2.6.tar.gz 进入redis解压目录 cd redis-6.2.6先编译 make再执行安装 make PREFI…...

数据库原理4

1.数据库中的数据通常可分为用户数据和系统数据两部分。用户数据是用户使用的数据;系统数据称为数据字典。 2.SQL语言的功能:数据查询;数据操纵;数据定义;数据操作;数据控制 3.对未提交更新的依赖&#x…...

doris: MySQL

Doris JDBC Catalog 支持通过标准 JDBC 接口连接 MySQL 数据库。本文档介绍如何配置 MySQL 数据库连接。 使用须知​ 要连接到 MySQL 数据库,您需要 MySQL 5.7, 8.0 或更高版本 MySQL 数据库的 JDBC 驱动程序,您可以从 Maven 仓库下载最新或指定版本的…...

Django模型数据删除:详解两种方式

Django模型数据删除:详解两种方式 在Django框架中,数据模型(Model)不仅定义了应用的数据结构,还提供了与数据库交互的接口,包括数据的删除操作。本文将详细介绍两种在Django中删除数据的方式:通…...

C++并发以及多线程的秘密

1.基础概念 并发(Concurrency) 并发是指在同一时间段内,多个任务看起来像是同时执行的。并发并不一定意味着真正的同时执行,它可以是通过时间片轮转等方式在多个任务之间快速切换,让用户感觉多个任务在同时进行。并发…...

自学微信小程序的第十二天

DAY12 1、腾讯地图SDK是一套为开发者提供多种地理位置服务的工具,可以使开发者在自己的应用中加入地图相关功能,轻松访问腾讯地图服务和数据,更好地实现微信小程序的地图功能。 表49:search()方法的常用选项 选项 类型 说明 keyword string POI搜索关键词,默认周边搜索 l…...

⭐算法OJ⭐跳跃游戏【贪心算法】(C++实现)Jump Game 系列 I,II

既股票买卖系列之后的第二组贪心算法题目:跳跃游戏系列。这一篇介绍的两个问题,其输入均为一个数组,每个元素表示在该位置可以跳跃的最大长度。 55. Jump Game You are given an integer array nums. You are initially positioned at the …...

带你从入门到精通——自然语言处理(五. Transformer中的自注意力机制和输入部分)

建议先阅读我之前的博客,掌握一定的自然语言处理前置知识后再阅读本文,链接如下: 带你从入门到精通——自然语言处理(一. 文本的基本预处理方法和张量表示)-CSDN博客 带你从入门到精通——自然语言处理(二…...

ubuntu挂载固态硬盘

Ubuntu 中挂载位于 /dev/sdc1 的固态硬盘,可以按照以下步骤操作: 步骤 1:确认分区信息 首先,确保设备 /dev/sdc1 存在且已正确分区: sudo fdisk -l /dev/sdc # 查看分区表 lsblk # 确认分区路…...

WPF+WebView 基础

1、基于.NET8&#xff0c;通过NuGet添加Microsoft.Web.WebView2。 2、MainWindow.xaml代码如下。 <Window x:Class"Demo.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/win…...

国内光子AI智能引擎:OptoChat AI在南京江北新区亮相

3月3日&#xff0c;从南京市投资促进局传来振奋人心的消息&#xff0c;南京江北新区的一家高科技企业——南京南智先进光电集成技术研究院有限公司&#xff08;简称“南智光电”&#xff09;&#xff0c;携手南京知满科技等合作伙伴&#xff0c;成功研发出国内首个光子AI智能引…...

vscode离线配置远程服务器

目录 一、前提 二、方法 2.1 查看vscode的commit_id 2.2 下载linux服务器安装包 2.3 安装包上传到远程服务器&#xff0c;并进行文件解压缩 三、常见错误 Failed to set up socket for dynamic port forward to remote port&#xff08;vscode报错解决方法&#xff09;-C…...

【安装】SQL Server 2005 安装及安装包

安装包 SQLEXPR.EXE&#xff1a;SQL Server 服务SQLServer2005_SSMSEE.msi&#xff1a;数据库管理工具&#xff0c;可以创建数据库&#xff0c;执行脚本等。SQLServer2005_SSMSEE_x64.msi&#xff1a;同上。这个是 64 位操作系统。 下载地址 https://www.microsoft.com/zh-c…...

使用Maven搭建Spring Boot框架

文章目录 前言1.环境准备2.创建SpringBoot项目3.配置Maven3.1 pom.xml文件3.2 添加其他依赖 4. 编写代码4.1 启动类4.2 控制器4.3 配置文件 5.运行项目6.打包与部署6.1 打包6.2 运行JAR文件 7.总结 前言 Spring Boot 是一个用于快速构建 Spring 应用程序的框架&#xff0c;它简…...

将docker容器打包为.tar包

1. 创建打包脚本 #!/bin/bash # 设置 -e 使得脚本在遇到错误时停止执行 set -e# 必要的参数 exported_container_name"needed_export_container_name_or_id" # 需要被导出的容器的名称或id image_save_name"my_custom_image_name:v25.03.03" # 镜像需…...

SYSTEM文件夹下的文件

sys文件夹下的.c和.h文件里的函数 最重要的倒数第二个 deley文件夹下的.c和.h文件 Systick工作原理 系统滴答定时器是在内核里的 每来一个时钟信号&#xff0c;计数器减一 F1系列时钟源是HCLK&#xff08;就是AHB总线上的时钟信号&#xff09; Systick控制寄存器 Systick重装…...

GPPT: Graph Pre-training and Prompt Tuning to Generalize Graph Neural Networks

GPPT: Graph Pre-training and Prompt Tuning to Generalize Graph Neural Networks KDD22 推荐指数&#xff1a;#paper/⭐⭐#​ 动机 本文探讨了图神经网络&#xff08;GNN&#xff09;在迁移学习中“预训练-微调”框架的局限性及改进方向。现有方法通过预训练&#xff08…...

【SegRNN 源码理解】PMF的多步并行预测

位置编码 elif self.dec_way "pmf":if self.channel_id:# m,d//2 -> 1,m,d//2 -> c,m,d//2# c,d//2 -> c,1,d//2 -> c,m,d//2# c,m,d -> cm,1,d -> bcm, 1, dpos_emb torch.cat([self.pos_emb.unsqueeze(0).repeat(self.enc_in, 1, 1),self.cha…...

构建自己的AI客服【根据用户输入生成EL表达式】

要实现一个基于对话形式的AI客服系统&#xff0c;该系统能够提示用户输入必要的信息&#xff0c;并根据用户的输入生成相应的EL&#xff08;Expression Language&#xff09;表达式编排规则&#xff0c;您可以按照以下步骤进行设计和开发。本文将涵盖系统架构设计、关键技术选型…...

保姆级拆解:Smoke3D的DLA34 Backbone如何一步步输出1/4特征图

深入解析Smoke3D中DLA34 Backbone的特征图生成机制 在计算机视觉领域&#xff0c;3D目标检测一直是极具挑战性的研究方向。Smoke3D作为单目3D检测的代表性框架&#xff0c;其核心架构DLA34 Backbone的特征提取过程值得深入探讨。本文将聚焦于输入图像如何通过DLA34的五次下采样…...

Seraphine:你的英雄联盟智能助手,3步实现高效战绩查询与游戏辅助

Seraphine&#xff1a;你的英雄联盟智能助手&#xff0c;3步实现高效战绩查询与游戏辅助 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine 还在为英雄联盟对局中信息不足而困扰吗&#xff1f;想要在BP阶段就占据…...

Linux用户的终极翻译助手:3种智能翻译方式完全指南

Linux用户的终极翻译助手&#xff1a;3种智能翻译方式完全指南 【免费下载链接】CuteTranslation Linux屏幕取词翻译软件 项目地址: https://gitcode.com/gh_mirrors/cu/CuteTranslation 你是否曾在Linux系统中阅读英文文档时频繁切换浏览器查词&#xff1f;是否因为图片…...

拆解新客裂变与裂变率:诺云用户可直接套用的获客增长指南

在流量红利消退、公域获客成本高企的当下&#xff0c;“新客裂变”早已成为企业降低获客成本、实现指数级增长的核心抓手&#xff0c;而“裂变率”作为衡量裂变效果的核心指标&#xff0c;直接决定了这场获客动作的成败。今天&#xff0c;我们就聚焦“新客裂变”与“裂变率”这…...

避开HAL库:STM32F103寄存器级PWM移相全桥配置避坑指南

STM32F103寄存器级PWM移相全桥实战&#xff1a;从原理到避坑指南 在嵌入式开发领域&#xff0c;许多工程师习惯使用HAL库或标准库进行STM32开发&#xff0c;这确实能提高开发效率。但当项目对时序精度、资源占用或性能有极致要求时&#xff0c;直接操作寄存器往往能带来更优的效…...

对比直接使用厂商 API 观察 Taotoken 在用量与成本可视化方面的优势

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 对比直接使用厂商 API 观察 Taotoken 在用量与成本可视化方面的优势 效果展示类&#xff0c;从个人开发者视角出发&#xff0c;分享…...

Taotoken的API Key分级管理与访问控制功能实测

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Taotoken的API Key分级管理与访问控制功能实测 1. 功能定位与实际价值 在团队协作或项目集成的场景中&#xff0c;直接使用一个具…...

实战剖析:利用Fluxion构建WiFi钓鱼热点与密码捕获

1. 环境准备与工具安装 在开始使用Fluxion进行WiFi安全测试之前&#xff0c;我们需要确保具备合适的硬件和软件环境。首先&#xff0c;你需要一台支持监听模式的无线网卡&#xff0c;这是进行任何无线安全测试的基础硬件。我推荐使用RTL8812AU芯片的网卡&#xff0c;实测下来兼…...

别再乱调了!Unity Shader中ZWrite的‘开’与‘关’,一份给程序员的避坑实践指南

Unity Shader深度写入实战&#xff1a;ZWrite的正确打开方式 1. 深度写入的底层逻辑 在计算机图形学中&#xff0c;深度缓冲&#xff08;Depth Buffer&#xff09;是一个至关重要的概念。它本质上是一个二维数组&#xff0c;存储了每个像素距离摄像机的深度值。当Unity渲染场景…...

【免费下载】 QQ空间说说批量删除插件:2023年最新版推荐

QQ空间说说批量删除插件&#xff1a;2023年最新版推荐 【下载地址】QQ空间说说批量删除插件-2023年最新版 本仓库提供了一个2023年最新版的QQ空间说说批量删除插件。该插件可以帮助用户快速批量删除QQ空间中的说说&#xff0c;节省大量手动操作的时间 项目地址: https://gitc…...