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

Redis命令 - Lists命令组常用命令

先创建一个 key 叫做 mylist,mylist存一个list。

list数据类型底层是一个链表。先进后出,后进先出。

命令中的L(Left)、R(Right)代表链表的头部L(下标0的位置)和尾部R(下标length-1的位置)

list中的允许有相同的元素

1、LSET key index value

设置 index 位置的list元素的值为 value。当index超出范围时会返回一个error。

lset mylist 0 123

在这里插入图片描述
如果key不存在会报错
在这里插入图片描述

在这里插入图片描述

2、LINSERT key BEFORE|AFTER pivot value

作用:在list的某个元素前或者后插入某个新元素。

2.1、当 key 不存在时,这个list会被看作是空list,任何操作都不会发生,返回0
在这里插入图片描述
2.2、当 key 存在,正常插入元素:LINSERT key BEFORE pivot value

当前mylist中只有一个元素123
在123之前插入元素0
linsert mylist before 123 0
在这里插入图片描述

2.3、当 key 存在,正常插入元素:LINSERT key AFTER pivot value

当前mylist中有2个元素:【0,123】
在0后面插入一个元素12,插入成功后,mylist有3个元素:【0, 12, 123】
linsert mylist after 0 12
在这里插入图片描述

2.4、当key存在,但保存的不是一个list的时候,会返回error。

linsert mylist after 0 {“username”:“zhangsan”}
在这里插入图片描述

2.5、当 pivot 值找不到的时候返回 -1。

mylist中不存在元素456,尝试在456后面插入789,就会返回-1
linsert mylist after 456 789
在这里插入图片描述

3、LPUSH key value [value …]

一个列表从下标0开始,到下标len(list)-1结束,lpush是将一个元素或者多个元素插入到key指向的List的左侧。
3.1、若Key不存在:进行 push 操作前会创建一个空列表。

lpush mylist1 0 1
返回值:在 push 操作后的 list 长度
在这里插入图片描述

一下push多个元素,例如0和1,是把0和1从左到右依次push,因此先push 0,再push 1。所以等都push成功后,查看列表元素第一个是1,第2个是0
在这里插入图片描述

3.2、若Key存在,但key对应的不是list而是其他数据类型,返回一个错误

之前创建了一个myhash的key,key对应的hash。因此向myhash push元素时,会报错
lpush myhash 1在这里插入图片描述

4、RPUSH key value [value …]

一个列表从下标0开始,到下标len(list)-1结束,rpush跟lpush的区别就是,rpush是将一个元素或者多个元素插入到key指向的List的右侧。

rpush mylist 4 5 6
依次将4、5、6push到mylist的右侧,成功后返回list的长度6。查看mylist push后的元素排列如下。
在这里插入图片描述

5、LPUSHX key value [value…]

LPUSHX 比 LPUSH多了一个X,这个X代表Exist,因此LPUSHX的作用是,仅当key已经存在且存着一个list的时候,才将值插入到list的头部。如果key不存在时,不做任何操作。

lpushx mylist2 1
mylist2不存在,因此什么也不做,返回值0
在这里插入图片描述

lpushx mylist -1
mylist存在,且存着一个list,因此push成功,返回list长度
查看操作后的mylist,-1成功插到了mylist头部
此命令同样可以push多个元素。
在这里插入图片描述

6、RPUSHX key value [value…]

RPUSHX与LPUSHX命令的唯一区别是,当key存在且存着一个list的时候,是插到list的尾部。同样当key不存在的时候,什么也不做

rpushx mylist2 1
mylist2不存在,因此什么也不做,返回值0
在这里插入图片描述

rpushx mylist -2 -3
mylist存在,且存着一个list,因此push成功,返回list长度
查看操作后的mylist,-2和-3成功插到了mylist尾部
在这里插入图片描述

7、LPOP key

移除并且返回 key 对应的 list 的第一个元素
若key存在返回第一个元素的值,或者当 key 不存在时返回null。

lpop mylist2
lpop mylist
mylist2不存在,返回null,mylist存在且第一个元素是-1,弹出成功后,返回了此元素值-1
在这里插入图片描述

8、RPOP key

RPOP跟LPOP的区别仅在于是移除并获取列表的最后一个元素

rpop mylist2
rpop mylist
mylist2不存在,返回null,mylist存在且最后一个元素是-3,弹出成功后,返回了此元素值-3

在这里插入图片描述

9、LLEN key

若key存在且存着一个list,则返回list的长度,否则返回0
在这里插入图片描述

10、LINDEX key index

根据index获取list中的元素。如果index越界返回null,如果在范围内,返回对应的元素值。当key存的不是一个list时,报错。

lindex myhash 0
myhash存的不是list,将会报错
在这里插入图片描述

lindex mylist 3
mylist中有7个元素。第3个元素是4。若想访问第8个元素,就超出了范围,会返回null
在这里插入图片描述

11、LRANGE key start stop

返回存储在key的列表里指定范围内的元素。start和stop偏移量都是基于0的下标。偏移量也可以是负数,列表尾部即最后一个元素是-1,倒数第二个元素是-2,以此类推。

例如,mylist长度是7,想获取整个列表的元素有两种方式。
lrange mylist 0 7 或者 lrange mylist 0 -1
在这里插入图片描述
lrange mylist 3 8
如果stop偏移量大于list的长度,那就取到列表最后的一个元素为止。
如果stop偏移量小于start偏移量,那就不会做任何操作。
在这里插入图片描述

相关文章:

Redis命令 - Lists命令组常用命令

先创建一个 key 叫做 mylist,mylist存一个list。 list数据类型底层是一个链表。先进后出,后进先出。 命令中的L(Left)、R(Right)代表链表的头部L(下标0的位置)和尾部R(…...

切分大文件sql为小份

数据库太大了,整个备份导入出问题或者慢,需要将整个库按照表分割(一个表一个sql文件) 环境 win10 工具:python3.7pycharm 要分割的文件大小:6G,sql文件import redbname with open(best**.sql,…...

最新版CleanMyMac X4.14.7智能清理mac磁盘垃圾工具

CleanMyMac X是一款专业的Mac清理软件,可智能清理mac磁盘垃圾和多余语言安装包,快速释放电脑内存,轻松管理和升级Mac上的应用。同时CleanMyMac X可以强力卸载恶意软件,修复系统漏洞,一键扫描和优化Mac系统,…...

数据割据:当代社会数据治理的挑战

数据割据是指各个组织、企业或政府机构在数据的采集、存储和使用上形成了相对独立的局面,彼此之间缺乏有效的数据共享和流通机制。这种割据现象导致了数据的重复采集、冗余存储以及信息孤岛的出现,不仅浪费了大量的资源,还制约了数据的价值发…...

逻辑回归(解决分类问题)

定义:逻辑回归是一种用于解决分类问题的统计学习方法。它通过对数据进行建模,预测一个事件发生的概率。逻辑回归通常用于二元分类问题,即将数据分为两个类别。它基于线性回归模型,但使用了逻辑函数(也称为S形函数&…...

论文阅读:Feature Refinement to Improve High Resolution Image Inpainting

项目地址:https://github.com/geomagical/lama-with-refiner 论文地址:https://arxiv.org/abs/2109.07161 发表时间:2022年6月29日 项目体验地址:https://colab.research.google.com/github/advimman/lama/blob/master/colab/LaMa…...

结构型设计模式——适配器模式

适配器模式 这个更加好理解,就是做适配功能的类,例如,现在手机没有了圆形耳机接口,只有Type-C接口,因此你如果还想要使用圆形耳机的话需要买个圆形接口转Type-C的转换器(适配器),这…...

三菱FX系列PLC定长切割控制(线缆裁切)

三菱PLC绝对定位指令DDRVA实现往复运动控制详细介绍请查看下面文章链接: https://rxxw-control.blog.csdn.net/article/details/135570157https://rxxw-control.blog.csdn.net/article/details/135570157这篇博客我们介绍线缆行业的定长切割控制相关算法。 未完待…...

GPT编程:运行第一个聊天程序

环境搭建 很多机器学习框架和类库都是使用Python编写的,OpenAI提供的很多例子也是Python编写的,所以为了方便学习,我们这个教程也使用Python。 Python环境搭建 Python环境搭建有很多种方法,我们这里需要使用 Python 3.10 的环境…...

NLP论文阅读记录 - WOS | ROUGE-SEM:使用ROUGE结合语义更好地评估摘要

文章目录 前言0、论文摘要一、Introduction1.1目标问题1.2相关的尝试1.3本文贡献 二.相关工作三.本文方法四 实验效果4.1数据集4.2 对比模型4.3实施细节4.4评估指标4.5 实验结果4.6 细粒度分析 五 总结 前言 ROUGE-SEM: Better evaluation of summarization using ROUGE combin…...

vscode 创建文件自动添加注释信息

随机记录 目录 1. 背景介绍 2. "Docstring Generator"扩展 2.1 安装 2.2 设置注释信息 3. 自动配置py 文件头注释 1. 背景介绍 在VS Code中,您可以使用扩展来为新创建的Python文件自动添加头部注释信息。有几个常用的扩展可以实现此功能&#xff0…...

JVM内存区域详解,一文弄懂JVM内存【内存分布、回收算法、垃圾回收器】

视频讲解地址 学习文档 一、内存区域 区域描述线程私有如何溢出程序计数器为了线程切换后能恢复到正确的执行位置,每个线程都要有一个独立的程序计数器。✅唯一一个不会内存溢出的地方虚拟机栈1. 每个方法执行的时候,Java虚拟机都会同步创建一个栈帧用于…...

uniapp搜索附近蓝牙信标(iBeacon)

一、 iBeacon介绍 iBeacon是苹果在2013年WWDC上推出一项基于蓝牙4.0(Bluetooth LE | BLE | Bluetooth Smart)的精准微定位技术,在iPhone 4S后支持。当你的手持设备靠近一个Beacon基站时,设备就能够感应到Beacon信号,范…...

Redis 常见数据结构以及使用场景分析

Java面试题目录 Redis 常见数据类型以及使用场景分析 Redis中有string、list、hash、set、sorted set、bitmap这6种数据类型。 string可以用来做缓存,分布式锁,计数器等。 list可以实现消息队列,分页查询等。 hash适合存储对象结构。 set 可…...

LMDeploy 大模型量化部署实践

LMDeploy 大模型量化部署实践 大模型部署背景模型部署定义产品形态计算设备 大模型特点大模型挑战大模型部署方案 LMDeploy简介推理性能核心功能-量化核心功能-推理引擎TurboMind核心功能 推理服务 api-server 案例(安装、部署、量化) 大模型部署背景 模型部署 定义 将训练好…...

15个为你的品牌增加曝光的维基百科推广方法-华媒舍

维基百科是全球最大的免费在线百科全书,拥有庞大的用户群体和高质量的内容。在如今竞争激烈的市场中,利用维基百科推广品牌和增加曝光度已成为许多企业的重要策略。本文将介绍15种方法,帮助你有效地利用维基百科推广品牌,提升曝光…...

启动redis出现Creating Server TCP listening socket 127.0.0.1:6379: bind: No error异常

1.进入redis安装目录,地址栏输入cmd 2.输入命令 redis-server.exe redis.windows.conf redis启动失败 解决,输入命令 #第一步 redis-cli.exe#第二步 shutdown#第三步 exit第四步 redis-server.exe redis.windows.conf 显示以下图标即成功...

响应式编程Reactor优化Callback回调地狱

1. Reactor是什么 Reactor 是一个基于Reactive Streams规范的响应式编程框架。它提供了一组用于构建异步、事件驱动、响应式应用程序的工具和库。Reactor 的核心是 Flux(表示一个包含零到多个元素的异步序列)和 Mono表示一个包含零或一个元素的异步序列…...

React项目实战--------极客园项目PC端

项目介绍:主要将学习到的项目内容进行总结(有需要项目源码的可以私信我) 关于我的项目的配置如下,请注意下载的每个版本不一样,写的api也不一样 一、项目介绍 1.资料 1)短信接收&M端演示&#xff1a…...

Jerry每次能向前或向后走n*n步(始终不能超过初始位置1e5),q(q <= 1e5)次询问,求向前走d最少要几次

题目 思路&#xff1a;因为有走的过程不能超初始位置1e5的限制&#xff0c;所以不能直接用奇数最多两次&#xff0c;4的倍数最多两次的结论。spfa&#xff0c;平方数的dis为1&#xff0c;然后推出其他数的dis #include<bits/stdc.h> using namespace std; #define int …...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中&#xff0c;有时需要在系统启动时自动执行某些命令&#xff0c;特别是需要 sudo权限的指令。为了实现这一功能&#xff0c;可以使用多种方法&#xff0c;包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法&#xff0c;并提供…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.

ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #&#xff1a…...