redis基本数据结构-列表list

  • 特性
  • 每个列表键最多存储 2^32 - 1个字符串元素
  • 元素在列表中有序
  • 元素在列表中不唯一

  • 向列表左侧添加元素
lpush  key value
lpush number 1

lpush number 2

number = [2, 1]

  • 向列表右侧添加元素
rpush key value
rpush number 3

rpush number 4

rpush number 5

number = [2, 1, 3, 4, 5]

  • 从列表左侧弹出元素
lpop key
lpop number

返回2, number = [1, 3, 4, 5]

  • 从列表右侧弹出元素
rpop key 
rpop number

返回5, number = [1, 3, 4]

  • 获取列表中元素个数
llen key
llen number 

返回3, number = [1, 3, 4]

  • 获取列表片段(切片)
lrange key startIndex  endIndex
lrange number 0  1  

返回1, 3

lrange number 0  -1

返回1, 3, 4

说明: [startIndex, endIndex] 为闭区间, 负数index指示从后往前的index,最后一个为-1

  • 删除列表中的前count个元素中置为value的元素
lren  key  count  value
lpush number 3

number = [3, 1, 3, 4]

lrem number 3  3   // 删除前3个元素中值为3的元素

lrem number 3  3

返回2(实际删除个数)

number = [1, 4]

  • 获取指定位置的元素值
lindex key index 
lpush number 2

number  = [2, 1, 4]

lindex number 0 === 2

lindex number 1 === 1

lindex number 2 === lindex number -1 === 4

  • 设置指定位置的元素值
lset key index value 
lset number 0  hello

number = [hello, 1, 4]

  • 删除置顶范围以外的元素
ltrim key startIndex endIndex

说明: [startIndex, endIndex] 为闭区间

ltrim number 0 1

number = [hello, 1]

  • 向列表中指定元素值前/后插入元素(是在从左侧开始第一个该指定值出现的位置前/后)
linsert key BEFORE/AFTER  pivot  value 
lpush number 1

number = [1, hello, 1]

linsert number before 1 2

number = [2, 1, hello, 1]

linsert number after 1 3

number = [2, 1, 3, hello, 1]

  • 将一个列表移动到另一个列表(每次只移动一个元素)
rpoplpush key1 key2

number = [2, 1, 3, hello, 1]

rpoplpush number  number2

number = [2, 1, 3, hello]

number2 = [1]

rpoplpush number number2

number = [2, 1, 3]

number2 = [hello, 1]

redis基本数据结构-列表的更多相关文章

  1. redis底层数据结构之快速列表(quicklist)

    快速列表(quicklist) redis3 .2版本之前,List类型数据使用的底层数据结构是压缩列表(ziplist)或双向链表(linkedlist),当列表元素个数比较少并且每个元素占用空间比 ...

  2. Redis基本数据结构总结之STRING和LIST

    Redis基本数据结构总结前言 Redis的特点在于其读写速度特别快,因为是存储在内存中的,其非常适合于处理大数据量的情况:还有一个是其不同于其他的关系型数据库,Redis是非关系型数据库,也就是我们 ...

  3. Redis基本数据结构总结之SET、ZSET和HASH

    Redis基本数据结构总结 前言 Redis的特点在于其读写速度特别快,因为是存储在内存中的,其非常适合于处理大数据量的情况:还有一个是其不同于其他的关系型数据库,Redis是非关系型数据库,也就是我 ...

  4. 聊一聊Redis的数据结构

    如果没有记错的话,应该是在两个月前把 我们经常看到此类的文章: Redis的五种数据结构 Redis的数据结构以及对应的使用场景 其实以数据结构这个词去说明Redis的String.Hash.List ...

  5. 高可用Redis(四):列表,集合与有序集合

    1.列表类型 1.1 列表数据结构 左边为key,是字符串类型 右边为value,是一个有序的队列,与python的列表结构相同 可以在Redis中对列表的value进行如下操作 从左边添加元素 从右 ...

  6. Redis学习——数据结构介绍(四)

    一.简介 作为一款key-value 的NoSQL数据库,Redis支持的数据结构比较丰富,有:String(字符串) .List(列表) .Set(集合) .Hash(哈希) .Zset(有序集合) ...

  7. Redis常用数据结构

    Redis常用数据结构包括字符串(strings),列表(lists),哈希(hashes),集合(sets),有序集合(sorted sets). redis的key最大不能超过512M,可通过re ...

  8. Redis的数据结构、通用操作及其特性

    Redis的数据结构 五种数据类型: 字符串(String).字符串列表(list).字符串集合(set).有序字符串集合(sorted set).哈希(hash) key定义的注意点: 不要过长,不 ...

  9. Redis学习笔记之Redis基本数据结构

    Redis基础数据结构 Redis有5种基本数据结构:String(字符串).list(列表).set(集合).hash(哈希).zset(有序集合) 字符串string 字符串类型是Redis的va ...

  10. 你真的懂redis的数据结构了吗?redis内部数据结构和外部数据结构揭秘

    Redis有哪些数据结构? 字符串String.字典Hash.列表List.集合Set.有序集合SortedSet. 很多人面试时都遇到过这种场景吧? 其实除了上面的几种常见数据结构,还需要加上数据结 ...

随机推荐

  1. 网络安全—SSL安全访问应用

    文章目录 网络拓扑 部署CA服务器颁发证书 开启Web服务 安装IIS服务 修改Web默认网页 申请Web证书 前提准备 申请文件生成 申请web证书 开始安装web证书 客户机访问web默认网站 使 ...

  2. openstack的用户(user), 租户(tenant), 角色(role)概念区分

    用户身份管理有三个主要的概念: 用户Users租户Tenants角色Roles1. 定义 这三个概念的openstack官网定义(点击打开链接) 1.1 用户(User) openstack官网定义U ...

  3. 11种排序算法(Python实现)

    10种排序算法(Python实现) 冒泡排序 1. 两重循环,每次都将一个点移动到最终位置 def BubbleSort(lst): n=len(lst) if n<=1: return lst ...

  4. P2868

    Sightseeing Cows G 我们先考虑如何求平均乐趣值. 1.总乐趣为 \(\sum^n_{i = 1}f_i \times s_i\),其中 \(f_i\) 为第 \(i\) 个点的乐趣值 ...

  5. .NET5 IIS ASP.NET CORE 部署时 HTTP Error 502.5 - ANCM Out-Of-Process Startup Failure

    .NET5 IIS ASP.NET CORE 部署时 HTTP Error 502.5 - ANCM Out-Of-Process Startup Failure 部署机器只安装了dotnet-hos ...

  6. 手动解压安装mysql8.0 on windows my.ini

    1.解压"mysql-8.0.24-winx64.zip"到d:\Soft 2.在"D:\Soft\mysql-8.0.24-winx64"目录新建一个my.i ...

  7. Javascript高级程序设计第二章 | ch2 | 阅读笔记

    HTML中的Javascript <script>元素 值得注意的几个关键字: async:立即开始下载脚本,仅对外部脚本有效.给脚本添加 async 属性的目的是告诉浏览器,不必等脚本下 ...

  8. elasticsearch-head插件安装及启动,关闭命令

    启动插件 /elasticsearch-head目录npm run start启动elasticsearch 不能使用root账号 切换账号:su es./bin/elasticsearch 打印日志 ...

  9. 一份快速入门的 Makefile 教程

    目录 一份快速入门的 Makefile 教程 关于 Makefile,你应该知道的一些事情 什么是 Makefile? Makefile 能做什么? Makefile 怎么写? Makefile 与 ...

  10. Pytorch复制现有环境

    一,在本机上,打开anaconda Prompt直接使用 conda create -n 新环境名 --clone 旧环境名