【Redis】List 数据类型

文章目录

  • 常用命令
    • lpush & lpushx
    • rpush & rpushx
    • lrange & lpop & rpop
    • lindex & linsert
    • llen
  • 阻塞版本的命令
  • 内部编码

列表类型是⽤来存储多个有序的字符串,⼀个列表最多可以存储 2^32 - 1 个元素,允许有重复的元素。

列表在两端都可以插入和弹出,还可以获取到指定范围的元素,或者通过索引下标获取元素。

常用命令

lpush & lpushx

LPUSH key element [element ...]
LPUSHX key element [element ...]

lpush:将⼀个或者多个元素从左侧放⼊(头插)到 key 中。

lpushx:和 lpush 一样,不过 key 必须已存在。

img

rpush & rpushx

与上述的 lpush 和 lpushx 一样,不过这两是从右往左插入,也就是尾插。

img

lrange & lpop & rpop

LRANGE key start stop
LPOP key
RPOP key

lrange:获取从左往右在指定的范围内的值,0为正数第一个,-1为倒数第一个。

lpop:取出左侧第一个元素,也就是头删。

rpop:取出右侧第一个元素,也就是尾删。

img

lindex & linsert

LINDEX key index
LINSERT key <BEFORE | AFTER> pivot element

lindex:获取从左往右的第 index 下标的值。

linsert:在指定的元素的(BEFORE 代表前面,AFTER 代表后面)插入元素。

img

llen

获取列表的长度

阻塞版本的命令

lpop 和 rpop 都是非阻塞的,它们的阻塞版本为 blpop 和 brpop

主要区别在于:

  • 当列表不为空时,没有区别
  • 当列表为空时,并且指定时间后没有元素加入:则非阻塞会立即返回 nil ,而阻塞则在指定时间后返回 nil。
  • 当列表为空时,并且指定时间后有元素加入:则非阻塞会立即返回 nil ,而阻塞则在指定时间后返回新增元素。

内部编码

list 有两种内部编码:

  • 当列表的元素个数⼩于 list-max-ziplist-entries 配置(默认 512 个),同时列表中每个元素的⻓度都⼩于 list-max-ziplist-value 配置(默认 64 字节)时,redis 会选用 ziplist 实现,节省内存消耗。
  • 当不满足上述时,则会选择 linkedlist 实现

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

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

相关文章

YOLOv9改进策略 | Conv篇 | 利用YOLO-MS的MSBlock二次创新RepNCSPELAN4(全网独家创新)

一、本文介绍 本文给大家带来的改进机制是利用YOLO-MS提出的一种针对于实时目标检测的MSBlock模块(其其实不能算是Conv但是其应该是一整个模块)&#xff0c;我们将其用于RepNCSPELAN中组合出一种新的结构&#xff0c;来替换我们网络中的模块可以达到一种轻量化的作用&#xff…

TVbox三端助手MAC+Windows+手机版带接口

Vbox这个目前大热的电视播放器&#xff0c;由于是空壳&#xff0c;于是接口成为非常核心的一环&#xff0c;很多网友制作的接口会进行加密&#xff0c;以防被人复制使用。 最近发现有人对此做了个专门解密的工具&#xff0c;解不解密的不重要的&#xff0c;分享迷倒是觉得这工…

Python 全栈安全(二)

原文&#xff1a;annas-archive.org/md5/712ab41a4ed6036d0e8214d788514d6b 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第二部分&#xff1a;认证与授权 本书的第二部分是最具商业价值的部分。我这样说是因为它充满了大多数系统需要具备的实用工作流示例&#xf…

Web3钱包和身份验证:安全和去中心化的新标准

引言 在数字化的今天&#xff0c;我们正处于一个互联网技术迅速发展的时代。Web3作为一个革命性的概念&#xff0c;正在逐渐改变我们对互联网的看法和使用习惯。在这一变革中&#xff0c;Web3钱包和身份验证成为了核心组成部分&#xff0c;它们不仅为我们提供了安全和去中心化…

哈尔滨等保测评综述

​ 定级是网络安全等级保护的首要环节和关键环节&#xff0c;可以梳理各行业、各部门、各单位的等级保护对象类型、重要程度和数量等基本信息&#xff0c;确定分级保护的重点。定级不准&#xff0c;系统备案、建设、整改、等级测评等后续工作都会失去意义&#xff0c;等级…

[Spring Cloud] (4)搭建Vue2与网关、微服务通信并配置跨域

文章目录 前言gatway网关跨域配置取消微服务跨域配置 创建vue2项目准备一个原始vue2项目安装vue-router创建路由vue.config.js配置修改App.vue修改 添加接口访问安装axios创建request.js创建index.js创建InfoApi.js main.jssecurityUtils.js 前端登录界面登录消息提示框 最终效…

数据结构练习-算法与时间复杂度

----------------------------------------------------------------------------------------------------------------------------- 1. 设n是描述问题规模的非负整数&#xff0c;下列程序段的时间复杂度是( )。 x0;while(n>(x1)*(x1)xx1; A.O(logn) B.O(n^(1/2)) C.O(n)…

Redis 内存策略

目录 1. key到期的情况 Redis的内存结构redisDb Redis怎么知道哪个key过期的 Redis对过期key的删除策略 惰性删除 周期删除 2. key未到期&#xff0c;但内存使用已达上限的情况 Redis检查内存阈值的时刻 达到内存上限&#xff0c;Redis淘汰key的策略 结构体redisObj…

【JAVA进阶篇教学】第三篇:JDK8中Stream API使用

博主打算从0-1讲解下java进阶篇教学&#xff0c;今天教学第三篇&#xff1a;JDK8中Stream API使用。 Java 8 中的 Stream API 提供了一种便捷、高效的方式来处理集合数据&#xff0c;它支持函数式编程风格的操作&#xff0c;包括过滤、映射、归约等。Stream API 可以大大简化集…

微服务两种方式登录

目录 1.restTemplate方式 1.1页面 1.2消费者 1.3生产者 1.4效果 2.Feign方式 2.1Service 2.2生产者 三个生产者 一个消费者&#xff0c;三个生产者需要用mysqlmybatis 三个不同的数据库。 页面输入用户名和密码&#xff0c;提交到后端消费者&#xff0c;消费者传到生产…

揭开ChatGPT面纱(3):使用OpenAI进行文本情感分析(embeddings接口)

文章目录 一、embeddings接口解析二、代码实现1.数据集dataset.csv2.代码3.运行结果 openai版本1.6.1 本系列博客源码仓库&#xff1a;gitlab&#xff0c;本博客对应文件夹03 在这一篇博客中我将使用OpenAI的embeddings接口判断21条服装评价是否是好评。 首先来看实现思路&am…

2024 IDM最新破解版及软件介绍

*IDM&#xff1a;信息时代的高效管理工具** 在快节奏的现代社会中&#xff0c;随着信息的爆炸式增长&#xff0c;如何高效、有序地管理信息成为每个人都需要面对的挑战。IDM&#xff0c;作为一种信息管理工具&#xff0c;正在逐渐受到人们的青睐。 IDM&#xff0c;全称Inform…