list类型

数据存储需求:存储多个数据,并对数据进行存储空间的顺序进行区分需要的数据结构。一个存储空间保存多个数据,且通过数据可以体现进入顺序list类型。保存多个数据,底层使用双向链表存储结构实现

1.list类型数据的基本操作

添加 / 修改数据:lpush key value value1 | rpush key value value1

获取数据:lrange key start end | lindex key index | llen key

删除数据:rpop key | lpop key

2.list类型数据的扩展操作

在规定时间内获取并移除数据:blpop key1 key2 timeout | brpop key1 key2 timeout

3.list业务场景

在上边我们知道了list的基础操作 执行 lpop key 或者 rpop key可以从左或者从右进行删除,比如朋友圈点赞业务。

4.list类型的操作配置

所有的list命令都是用l开头的,Redis不区分大小命令

##########################################################################
127.0.0.1:6379> LPUSH list one # 将一个值或者多个值,插入到列表头部 (左)

127.0.0.1:6379> LPUSH list two

127.0.0.1:6379> LPUSH list three

127.0.0.1:6379> LRANGE list 0 -1 # 获取list中值!

127.0.0.1:6379> LRANGE list 0 1 # 通过区间获取具体的值!

127.0.0.1:6379> Rpush list right # 将一个值或者多个值,插入到列表位部 (右)

127.0.0.1:6379> LRANGE list 0 -1

##########################################################################
LPOP
RPOP
127.0.0.1:6379> LRANGE list 0 -1

127.0.0.1:6379> Lpop list # 移除list的第一个元素

127.0.0.1:6379> Rpop list # 移除list的最后一个元素

127.0.0.1:6379> LRANGE list 0 -1

##########################################################################
Lindex
127.0.0.1:6379> LRANGE list 0 -1

127.0.0.1:6379> lindex list 1 # 通过下标获得 list 中的某一个值!

127.0.0.1:6379> lindex list 0

##########################################################################
Llen
127.0.0.1:6379> Lpush list one

127.0.0.1:6379> Lpush list two

127.0.0.1:6379> Lpush list three

127.0.0.1:6379> Llen list # 返回列表的长度

##########################################################################
移除指定的值!
取关 uid
Lrem
127.0.0.1:6379> LRANGE list 0 -1

127.0.0.1:6379> lrem list 1 one # 移除list集合中指定个数的value,精确匹配

127.0.0.1:6379> LRANGE list 0 -1

127.0.0.1:6379> lrem list 1 three

127.0.0.1:6379> LRANGE list 0 -1

127.0.0.1:6379> Lpush list three

127.0.0.1:6379> lrem list 2 two

127.0.0.1:6379> LRANGE list 0 -1

##########################################################################
trim 单词意思:修剪;

127.0.0.1:6379> flushdb
127.0.0.1:6379> keys *

127.0.0.1:6379> Rpush mylist "hello"

127.0.0.1:6379> Rpush mylist "hello1"

127.0.0.1:6379> Rpush mylist "hello2"

127.0.0.1:6379> Rpush mylist "hello3"

127.0.0.1:6379> ltrim mylist 1 2 # 通过下标截取指定的长度,这个list已经被改变了,截断了只剩下截取的元素!

127.0.0.1:6379> LRANGE mylist 0 -1

##########################################################################
rpoplpush # 移除列表的最后一个元素,将他移动到新的列表中!

127.0.0.1:6379> flushdb
127.0.0.1:6379> rpush mylist "hello"

127.0.0.1:6379> rpush mylist "hello1"

127.0.0.1:6379> rpush mylist "hello2"

127.0.0.1:6379> rpoplpush mylist myotherlist # 移除列表的最后一个元素,将他移动到新的列表中!

127.0.0.1:6379> lrange mylist 0 -1 # 查看原来的列表

127.0.0.1:6379> lrange myotherlist 0 -1 # 查看目标列表中,确实存在改值!

##########################################################################
lset 将列表中指定下标的值替换为另外一个值,更新操作
127.0.0.1:6379> EXISTS list # 判断这个列表是否存在

127.0.0.1:6379> lset list 0 item # 如果不存在列表我们去更新就会报错

127.0.0.1:6379> lpush list value1

127.0.0.1:6379> LRANGE list 0 0

127.0.0.1:6379> lset list 0 item # 如果存在,更新当前下标的值

127.0.0.1:6379> LRANGE list 0 0

127.0.0.1:6379> lset list 1 other # 如果不存在,则会报错!

##########################################################################
linsert # 将某个具体的value插入到列把你中某个元素的前面或者后面!

127.0.0.1:6379> flushdb

127.0.0.1:6379> Rpush mylist "hello"

127.0.0.1:6379> Rpush mylist "world"

127.0.0.1:6379> LINSERT mylist before "world" "other"

127.0.0.1:6379> LRANGE mylist 0 -1

127.0.0.1:6379> LINSERT mylist after world new

127.0.0.1:6379> LRANGE mylist 0 -1

十、Redis五大数据类型之二List相关推荐

  1. note.. redis五大数据类型

    redis 五大数据类型使用 nosql介绍,由来 什么是nosql 阿里巴巴的架构 nosql 四大分类 redis入门 概述 redis 安装 (docker) 基础的知识 redis五大数据类型 ...

  2. Redis五大数据类型(字符串对象(string)、列表对象(list)、哈希对象(hash)、无序集合(set)和Sorted Set数据类型(zset有序集合))

    Redis五大数据类型 一.String(字符串)数据类型 1.SET/GET/APPEND/STRLEN 2.INCR/DECR/INCRBY/DECRBY 3.GETSET 4. SETEX 5. ...

  3. 【Redis五大数据类型】

    Redis五大数据类型 前言 一.字符串String 1. set / get / del / append / strlen 2. incr / decr / incrby / decrby 3. ...

  4. Redis五大数据类型

    Redis五大数据类型 Redis数据类型 key + Østring Øset Ølist Øhash Øzset Redis五大数据类型 --Key Ø keys * • 查询当前库的所有键 Ø ...

  5. Redis五大数据类型常用命令

    Redis五大数据类型 Redis-Key 1.查看当前数据库的key keys * #返回当前数据库下的所有key 2.设置key set key value 3.获取key的value get k ...

  6. (一)Redis——五大数据类型及基础知识

    一位爱好技术的橘右京的哥哥橘左京 Redis--五大数据类型及基础知识(一) Redis 1.Redis命令 1.1 常用String命令 1.2 常用List命令 1.3 常用Hash命令 1.4 ...

  7. Redis五大数据类型与使用场景汇总!!(含完整实战案例,建议收藏)

    本文全面讲述了Redis的五大数据类型和使用场景,含完整实战案例,强烈建议收藏!! 大家好,我是冰河~~ 最近面试跳槽的小伙伴有点多,给我反馈的面试情况更是千差万别,不过很多小伙伴反馈说:面试中的大部 ...

  8. 【数据存储】【Redis】第三章: Redis五大数据类型实现原理

    Redis五大数据类型实现原理 对于五大数据类型(String,list,Hash,Set,Zset)实现原理,Redis在底层用到了多种数据结构,通过数据结构来实现键值对,将数据结构创建了一个对象r ...

  9. redis 五大数据类型

    文章目录 一.Redis-Key 二.String 三.List 四. Set ( 集合 ) 五.Hash(哈希) 六.Zset(有序集合) 视频链接 官网: https://redis.io/ 中文 ...

最新文章

  1. 机器学习_周志华_问题汇总_第2周
  2. 关于交通创新,这五大智慧城市做了啥?
  3. 说说javascprit的基本规范?
  4. 修改 IE 查看源文件默认工具
  5. 只要一点点力气就可以撬起重物?
  6. 非阻塞 php,PHP异步非阻塞之路
  7. [机器学习-回归算法]一元线性回归用最小二乘法的推导过程
  8. Windows下编写的脚本文件无法在Linux上运行的问题
  9. 查看linux文件目录的大小和文件夹包含的文件数
  10. Linux安全配置规范
  11. 深入理解JVM虚拟机 3.6
  12. win7计算机打开显卡设置在哪,Win7显卡设置在哪里 win7系统如何设置显卡
  13. 【Java分享客栈】我为什么极力推荐XXL-JOB作为中小厂的分布式任务调度平台
  14. Android性能优化系列之App启动优化
  15. 解决报错:OSError: Failed to open file b‘D:\\\xe5\xad\xa6\xe4\xb9\xa0\\scipy-_7cm39vc‘(图文并茂版详细版!!)
  16. 从简单工厂到抽象工厂
  17. stm32 智能避障小车(二)之sg90
  18. Confidence Propagation Cluster: 一个来自CVPR2022的目标检测涨点神器(CP-Cluster)
  19. 对动量守恒定律的质疑
  20. Xcode7.3.1中通过最新的CocoaPod安装pop动画引擎

热门文章

  1. java web filter标签是什么,Java Web:5.Filter
  2. java大量的print影响性能吗_printStackTrace()造成的性能瓶颈
  3. java中把字符串转换为日期,java字符串转日期方法,java如何将字符串转为日期?...
  4. 笔记本卡顿不流畅是什么原因_电脑卡顿不流畅是什么原因
  5. 我去!每天都用的这个操作居然算“黑客行为”?
  6. 皮一皮:现在想想真是幸运...
  7. 开源中国 Chrome 插件,你的好帮手~
  8. 最真实的互联网用户画像...
  9. 每日一皮:新年好...
  10. Containerd 的前世今生和保姆级入门教程