十、Redis五大数据类型之二List
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相关推荐
- note.. redis五大数据类型
redis 五大数据类型使用 nosql介绍,由来 什么是nosql 阿里巴巴的架构 nosql 四大分类 redis入门 概述 redis 安装 (docker) 基础的知识 redis五大数据类型 ...
- 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. ...
- 【Redis五大数据类型】
Redis五大数据类型 前言 一.字符串String 1. set / get / del / append / strlen 2. incr / decr / incrby / decrby 3. ...
- Redis五大数据类型
Redis五大数据类型 Redis数据类型 key + Østring Øset Ølist Øhash Øzset Redis五大数据类型 --Key Ø keys * • 查询当前库的所有键 Ø ...
- Redis五大数据类型常用命令
Redis五大数据类型 Redis-Key 1.查看当前数据库的key keys * #返回当前数据库下的所有key 2.设置key set key value 3.获取key的value get k ...
- (一)Redis——五大数据类型及基础知识
一位爱好技术的橘右京的哥哥橘左京 Redis--五大数据类型及基础知识(一) Redis 1.Redis命令 1.1 常用String命令 1.2 常用List命令 1.3 常用Hash命令 1.4 ...
- Redis五大数据类型与使用场景汇总!!(含完整实战案例,建议收藏)
本文全面讲述了Redis的五大数据类型和使用场景,含完整实战案例,强烈建议收藏!! 大家好,我是冰河~~ 最近面试跳槽的小伙伴有点多,给我反馈的面试情况更是千差万别,不过很多小伙伴反馈说:面试中的大部 ...
- 【数据存储】【Redis】第三章: Redis五大数据类型实现原理
Redis五大数据类型实现原理 对于五大数据类型(String,list,Hash,Set,Zset)实现原理,Redis在底层用到了多种数据结构,通过数据结构来实现键值对,将数据结构创建了一个对象r ...
- redis 五大数据类型
文章目录 一.Redis-Key 二.String 三.List 四. Set ( 集合 ) 五.Hash(哈希) 六.Zset(有序集合) 视频链接 官网: https://redis.io/ 中文 ...
最新文章
- 机器学习_周志华_问题汇总_第2周
- 关于交通创新,这五大智慧城市做了啥?
- 说说javascprit的基本规范?
- 修改 IE 查看源文件默认工具
- 只要一点点力气就可以撬起重物?
- 非阻塞 php,PHP异步非阻塞之路
- [机器学习-回归算法]一元线性回归用最小二乘法的推导过程
- Windows下编写的脚本文件无法在Linux上运行的问题
- 查看linux文件目录的大小和文件夹包含的文件数
- Linux安全配置规范
- 深入理解JVM虚拟机 3.6
- win7计算机打开显卡设置在哪,Win7显卡设置在哪里 win7系统如何设置显卡
- 【Java分享客栈】我为什么极力推荐XXL-JOB作为中小厂的分布式任务调度平台
- Android性能优化系列之App启动优化
- 解决报错:OSError: Failed to open file b‘D:\\\xe5\xad\xa6\xe4\xb9\xa0\\scipy-_7cm39vc‘(图文并茂版详细版!!)
- 从简单工厂到抽象工厂
- stm32 智能避障小车(二)之sg90
- Confidence Propagation Cluster: 一个来自CVPR2022的目标检测涨点神器(CP-Cluster)
- 对动量守恒定律的质疑
- Xcode7.3.1中通过最新的CocoaPod安装pop动画引擎
热门文章
- java web filter标签是什么,Java Web:5.Filter
- java大量的print影响性能吗_printStackTrace()造成的性能瓶颈
- java中把字符串转换为日期,java字符串转日期方法,java如何将字符串转为日期?...
- 笔记本卡顿不流畅是什么原因_电脑卡顿不流畅是什么原因
- 我去!每天都用的这个操作居然算“黑客行为”?
- 皮一皮:现在想想真是幸运...
- 开源中国 Chrome 插件,你的好帮手~
- 最真实的互联网用户画像...
- 每日一皮:新年好...
- Containerd 的前世今生和保姆级入门教程