Redis学习篇(四)之List类型及其操作

Redis的List是一个双向链表

LPUSH

作用:向列表左端添加元素

语法:LPUSH key value value...

从左到右逐个添加到左端,前面的先添加, 可以一次添加多个元素

RPUSH

作用:向列表右端添加元素

语法:RPUSH key value, value...

LPUSHX

作用: 向列表左端添加元素,只有key存在才可以添加

语法:LPUSH key value

一次只能添加一个元素

RPUSHX

作用: 向列表右端添加元素,只有key存在才可以添加

语法:RPUSH key value

一次只能添加一个元素

LPOP

作用:将列表左端的元素弹出

语法:LPOP key

RPOP

作用: 将列表右端的元素弹出

语法: RPOP key

不存在就nil

LLEN

作用:获得列表的长度

语法:LLEN key

不存在就返回0

LRANGE

作用: 获取列表片段

语法: LRANGE key start stop

包含最后的索引值

如果start比列表的长度还大,则返回空

LREM

作用:删除指定的值

语法: LREM key count value

count值由以下几类型:
count>0: 从列表的头部开始,向尾部搜索,移除与value相等的count个元素
count<0: 从列表的尾部开始,向头部搜索,移除与value相等的count个元素
count=0: 移除列表中全部的与count相等的值

LINDEX

作用:获得指定索引元素的值

语法: LINDEX key index

LSET

作用:设置指定索引的值

语法:LSET key index value

LTRIM

作用:只保留列表的片段

语法:LTRIM key start stop

当start大于列表长度,则被清空

LINSERT

作用:向列表插入元素

语法:LINSERT key BEFORE|AFTER pivot value

LINSERT key BEFORE a hello
向key这个列表中,a之前插入一个元素hello
成功返回列表的长度
如果a不存在,则返回-1
对空列表不可用,返回0

RPOPLPUSH

作用: 弹出右边元素,添加到左边,是一个原子操作, 返回弹出的元素

语法: RPOPLPUSH source destination

可以是同一个列表
source不存在时,返回nil

BLPOP

作用:BLPOP是LPOP的阻塞版本,将第一个不为空的列表弹出

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

timeout为0表示无限期等待
如果列表为空,则会在timeout时间之内一直等待, 当列表被添加之后,会弹出此列表,返回阻塞时间
支持多客户端操作

posted @ 2017-09-10 15:13  cnkai  阅读(402)  评论(0编辑  收藏  举报