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. (图形界面)Dbever连接MySQL8 报错mysql8 安装The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone.

    问题原因是没有设置时区,这个在Mysql8中会有 解决方式: 在这个位置加上UTC时区就可以了. IDEA添加方式 设置Advanced的allowPublicKeyRetrieval为true 同时 ...

  2. Java学习之数据类型转换

    package com.zhang.LectCode; public class 各种数据间的相互转换 { public static void main(String[] args) { //将St ...

  3. Chart.js (v2.9.4)概要介绍

    chart.js是一个非常优秀的开源图表插件,扩展非常灵活,同时也提供了大量的钩子函数,给与用户添加自定义插件,实现个性化的需求. 具体的优势特点,这里不详述,网上大把资料,现开始正式深入了解这个插件 ...

  4. vue4 项目的创建

    1,安装vue cli 脚手架,是全局安装npm install -g @vue/cli 可以在输出信息中看到安装位置,例如:C:\Users\xiaochangjian\AppData\Roamin ...

  5. ObjectArx 创建一个自定义实体项目步骤

    我使用的环境是cad2018+objectarx2018+vs2015+win10.先要安装desk向导程序,用向导创建项目对于初学者来说是很方便的,然后在配置程序编译链接的环境,最后就可以写一个项目 ...

  6. Java中获取类声明泛型的Class对象(WEB开发Dao层的抽取)

    在WEB开发中,用到三层架构中经常会遇到代码抽取的情况,例如在dao层中,我们需要对数据库的基本操作进行抽取例如这样,在抽取之前我们需要定义抽取类的接口: public interface BaseD ...

  7. Django中的ORM转换为SQL语句日志

    如果想打印ORM转换过程中的SQL,需要在settings中进行如下配置: LOGGING = { 'version': 1, 'disable_existing_loggers': False, ' ...

  8. Ubuntu20.04安装MySQL5.7

    ubuntu 20.04系统自带源直接安装的是MySQL 8.0,要安装MySQL 5.7的话,需要先换源. 1.换源 sudo cp /etc/apt/sources.list /etc/apt/s ...

  9. Android 13 - Media框架(1)- 总览

    关注公众号免费阅读全文,进入音视频开发技术分享群! 为了加深对Android Media框架的理解,决定在这里记录下学习过程中碰到的问题以及一些个人思考.由于本人水平有限,笔记的内容可能会有一些错误, ...

  10. 鸿蒙极速入门(一)-HarmonyOS简介

    1.华为官网介绍 2.OpenHarmony开源项目 3.技术架构 内核层 内核子系统:采用多内核(Linux内核或者LiteOS)设计,支持针对不同资源受限设备选用适合的OS内核 驱动子系统:驱动框 ...