美文网首页
redis List类型命令

redis List类型命令

作者: 饱饱想要的灵感 | 来源:发表于2023-02-23 11:07 被阅读0次

llen

语法:llen key

获取到集合里元素的总个数

lrange

语法:lrange key start stop

查询集合元素,并设置查询区间
start:起始值,设置正数则从左往右,设置负数则从右往左开始
stop:终点值,设置正数则从左往右,设置负数则从右往左开始
注:start(0) stop(-1)代表查询全部

例子:

lrange listString -5 -3
        -- 起点从尾部往前数5个,终点从尾部往前数3个;最终显示 -5,-4,-3这三个元素
lrange listString -5 -8
        -- 起点从尾部往前数5个,终点从尾部往前数8个;最终显示(empty array)

lpush

语法:lpush key element [element ...]

将一个或多个值插入到集合key的头部(头插法),如果当前key不存在则创建新的

例子:

lpush listNumber 8.4 13 14 10.5 4 19.6 10 14 5.2 10 3 2.5 7 4.7 10 11.2 8 2.2 15.7 20.9
lpush listString  remini Momen Pledg Memo Tende Biode Revie silen baobao AusL Simpl       Promis baobao Bautifu smil Initiall sunse lemo firs Chaffere

lpushx

语法:lpushx key element [element ...]

往集合左边插入一个元素;若集合key不存在无法插入

rpush

语法:rpush key element [element ...]

将一个或多个值插入到集合key的尾部(尾插法),如果当前key不存在则创建新的

rpushx

语法:rpushx key element [element ...]

往集合右边插入一个元素;若集合key不存在无法插入

lpop

语法:lpop key [count]

从集合左边(头部)弹出(删除)指定的count个元素删除

例子:lpop listString 2 -- 从集合左边弹出两个元素删除

rpop

语法:rpop key [count]

从集合右边(尾部部)弹出(删除)指定的count个元素删除

blpop

语法:blpop key [key ...] timeout

移出并获取集合头部第一个元素,如果集合没有元素会阻塞集合直到等待超时或发现可弹出元素为止,它是lpop的阻塞版
key:如果当前key不存在或者key内部没元素,则一直阻塞等待,等待其它客户端创建此key和元素,会立马弹出
但是超出延迟时间的话还没有弹出元素则会在最后弹出(nil)
[key ...]:设置多个key时,如果第一个key不存在则会考虑弹出第二个key,第三个key....,如果每个key都不存在或没元素
则当前客户端会进入一个阻塞状态,直到有元素弹出,或者自动超时弹出(nil)

例子:

127.0.0.1:6379> blpop listA mylist 480
    1) "mylist"
    2) "remini"
        -- 设置两个key,其中listString为空,会自动去找mylist集合,发现存在元素,并立刻弹出

brpop

语法:brpop key [key ...] timeout

移出并获取集合尾部第一个元素,如果集合没有元素会阻塞集合直到等待超时或发现可弹出元素为止,它是lpop的阻塞版

lindex

语法:lindex key index

返回集合key里索引index位置存储的元素,0n从左往右索引、-1-n从右往左索引

例子: lindex listString -1 -- 获取集合listString里的最后一个索引的元素

lrem

语法:lrem key count element

从集合key中删除前count个值等于element的元素
count > 0: 从头到尾删除值为 value 的元素
count < 0: 从尾到头删除值为 value 的元素
count = 0: 移除所有值为 value 的元素

例子:listString -2 baobao --移除集合listString中的baobao元素,删除个数-2(代表从尾部查找并删除两个),并返回删除成功个数

lset

语法:lset key index element

设置集合key中index位置的元素值为新的element,index为正数则从头到位索引,为负数从尾到头索引查询

例子:lset listString 2 yyds -- 修改集合listString中索引为2的元素为yyds

linsert

语法:linsert key before|after pivot element

把element元素插入到指定集合key里,但是还要以pivot内部的一个元素为基准,看是插到这个元素的左边还是右边
before|after:插入元素的前后位置选项
pivot:集合里的参考元素
element:待插入的元素
注:当集合key不存在时,这个list会被看作是空list,什么都不执行
注:当集合key存在,值不是列表类型时,返回错误
注:当给定的参考元素pivot不存在是则返回-1,因为程序不知道往哪插入

例子:listString after baobao good -- 把good插入到listString集合里,插入参考baobao元素的后面

lpos

语法:lpos key element [rank rank] [count num-matches] [maxlen len]

返回集合key中匹配给定element成员的索引
key:要查询的集合key
element:要查询索引的元素
[rank rank]:选择匹配上的第几个元素,若超出集合指定元素的个数则返回(nil)
[count num-matches]:返回匹配上元素的索引个数,默认返回1个
[maxlen len]:告知lpos命令查询集合的前len个元素,限制查询个数

例子:

 lpos listString Romanti     -- 查询集合listString里的Romanti出现的索引位置(0开始索引)
    lpos listString Romanti rank 2  -- 查询Romanti元素的第二个索引位置
    lpos listString Romanti rank 1 count 3  -- 查询Romanti索引的三条记录
    lpos listString Romanti rank 1 count 3 maxlen 20    -- 限制查询下标为0~20
    1) (integer) 7
    2) (integer) 11

lmove

语法:lmove source destination left|right left|right

用于原子地从source集合左边或者右边弹出一个元素,添加到destination新集合里的左边或右边
source:源集合
destination:目标集合
left|right left|right:
第一个:代表从源集合的左边或者右边弹出元素
第二个:代表从目标集合的左边或者右边添加

例子:

lmove listString mylist left right   -- 从listString源集合的左边弹出个元素,添加到mylist目标集合的右边

rpoplpush

语法:rpoplpush source destination

原子地从集合source中移除并返回最后一个元素,然后把这个元素插入集合destination的第一个元素
source:源集合
destination:目标集合
注:此方法在Redis6.2.0被废除(使用lmove代替)

blmove

语法:blmove source destination left|right left|right timeout

用于原子地从source集合左边或者右边弹出一个元素,添加到destination新集合里的左边或右边,但是它时lmove的阻塞版本

例子:listString mylist left right 60 -- 从集合listString左边弹出一个元素放到目标集合mylist的尾部, 存在60秒的超时时间,超过60秒没有弹出元素则自动失败,返回(nil)

brpoplpush

语法:brpoplpush source destination timeout

原子地从集合source中移除并返回最后一个元素,然后把这个元素插入集合destination的第一个元素(已废弃使用blmove代替)

例子: brpoplpush listString mylist 50 -- 从集合listString尾部弹出一个元素添加到目标mylist集合的头部,超时时间50秒

ltrim

语法:ltrim key start stop

修订一个已经存在的集合;修订一个指定范围的元素放到当前集合中

例子:

127.0.0.1:6379> ltrim listString -10 -5
OK
127.0.0.1:6379> lrange listString 0 -1
1) "Simpl"
2) "AusL"
) "silen"
4) "Revie"
5) "Biode"
6) "Tende"

相关文章

  • redis命令行操作

    redis命令 string类型操作 hash类型相关操作 list类型相关操作 set类型相关操作 zset类型...

  • 7 Redis五大数据类型简单介绍

    Redis命令大全 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set...

  • Redis使用心得记录

    0.通用命令 1.string操作命令 注redis中字符数据类型: 2.hash操作命令 3.list操作命令 ...

  • Redis学习之路(4)命令-list(列表)、set(集合)、

    Redis 数据类型 Redis支持5种数据类型: 本段介绍一下list(列表)。 Redis 列表(List) ...

  • redis命令操作

    redis命令操作 一、string类型的数据 二、list数据类型(可以结合链表来理解) 三、Hash数据结构 ...

  • redis命令

    redis有5种数据类型:string,list,hash,set,zset。 全局命令 每种类型都有自己的专有命...

  • Redis' lists

    Redis列表基本操作命令 Redis list底层结构 Redis list由链表来实现。在Redis中链表的应...

  • redis学习系列(四)

    redis简单操作之list类型 redis里面的list类型被称为链表类型 1.lpush向链表的头部放入数据 ...

  • quicklist vs ziplist

    在一次使用redis list的时候,使用object encoding命令查看编码类型。时出现了quicklis...

  • redis学习笔记(十一) 异步队列

    1. 引子 redis中有list数据类型,通过list可以实现生产者和消费者。 2. 生产者 使用rpush命令...

网友评论

      本文标题:redis List类型命令

      本文链接:https://www.haomeiwen.com/subject/cuwzkdtx.html