您的位置:首页 > 数据库 > Redis

Redis常用命令-List

2017-03-13 23:42 302 查看
Redis是一个开源的速度非常快的非关系数据库,它可以存储键(key)与5种不同类型的值(value)之间的映射(mapping),可以将存储在内存的键值对数据持久化到硬盘,可以使用复制特性来扩展读性能,还可以使用客户端分片来扩展写性能。、

请注意:存储在Redis中的数据并不会由于计算机的关机而从内存中消失,必须手动删除数据才会消失。

Redis的集合和列表都可以存储多个字符串,它们之间的不同在于,列表可以存储多个相同的字符串,而集合则通过使用散列来保证自己存储的每个字符串都是各不相同的(这些散列表只有键,但没有与键相关联的值)。

一、List键值结构



二、重要API

参数解释
RpushLpush key-name value[value…]——将一个或多个值推入列表的右端
LpushLpush key-name value[value…]——将一个或多个值推入列表的左端
LinsertLinsert key-name BEFORE|AFTER pivot value——在list指定的值pivot前|后插入value
RpopRpop key-name——移除并返回列表最右端的元素
LpopLpop key-name index newValue——移除并返回列表最左端的元素
LtrimLtrim key-name start end——对列表进行修剪,只保留从start偏移量到end偏移量范围内的元素,包括start和end在内
LremLrem key-name count value——根据count值从列表中删除与value相等的项,(1)count>0,从左到右删除最多count个与value相等的项 (2)count<0,从右到左删除最多count个与value相等的项 (3)count=0,删除所有与value相等的项
LsetLset key-name index newValue——设置列表指定索引的值为newValue
LindexLindex key-name offset——返回列表中偏移量为offset的元素
LrangeLrange key-name start end——返回列表从start偏移量到end偏移量范围内的所有元素,包括start和end在内
LlenLlen key-name——获取列表的长度
BlpopBlpop key-name [key-name…] timeout——从第一个非空列表中弹出位于最左端的元素,或者在timeout秒之内阻塞并等待可弹出的元素出现
BrpopBrpop key-name [key-name…] timeout——从第一个非空列表中弹出位于最右端的元素,或者在timeout秒之内阻塞并等待可弹出的元素出现
RpopLpushRpopLpush source-key dest-key——从source-key列表中弹出位于最右端的元素,然后将这个元素推入dest-key列表的最左端,并向用户返回这个元素
BRpopLpushBRpopLpush source-key dest-key timeout——从source-key列表中弹出位于最右端的元素,然后将这个元素推入dest-key列表的最左端,并向用户返回这个元素;如果source-key为空,那么在timeout秒之内阻塞并等待可弹出元素出现

三、注意事项

1、要小心使用Ltrim命令

实例演示:

1、Lpush和Rpush

Lpush list-key1 val1 val2 //list-key1值为:val2 val1,最左边的元素的索引为0

Lpush list-key1 val3 val4  //list-key1值为:val4 val3 val2 val1

Lpush list-key1 val5     //list-key1值为:val5 val4 val3 val2 val1

Rpush list-key1 val6    //list-key1值为:val5 val4 val3 val2 val1 val6

Rpush list-key1 val7 val8  //list-key1值为:val5 val4 val3 val2 val1 val6 val7 val8

2、Lpop和Rpop

Lpop list-key1 //list-key1值为:val4 val3 val2 val1 val6 val7 val8

Rpop list-key1 //list-key1值为:val4 val3 val2 val1 val6 val7

3、Lrange

Lrange list-key1 0 -1 //结果为:val4 val3 val2 val1 val6 val7

Lrange list-key1 0 5  //结果为:val4 val3 val2 val1 val6 val7

Lrange list-key1 4 5  //结果为:val6 val7

4、Lindex

Lindex list-key1 0 //结果为:val4

Lindex list-key1 3 //结果为:val1

5、Ltrim

Ltrim list-key1 3 5 //list-key1值为:val1 val6 val7

6、Blpop

在测试本命令之前先对需要用到的数据进行初始化。

Rpush list-key1 val5 val2         //list-key1值为:val1 val6 val7 val5 val2

Rpush list-key2 vala valb valc vald vale  //list-key2值为:vala valb valc vald vale

Blpop list-key1 list-key2 100       //list-key1值为:val6 val7 val5 val2

                     //list-key2值为:vala valb valc vald vale

7、Brpop

Brpop list-key2 list-key1 100   //list-key1值为:val6 val7 val5 val2

                //list-key2值为:vala valb valc vald

8、RpopLpush

RpopLpush list-key1 list-key2  //list-key1值为:val6 val7 val5

                //list-key2值为:val2 vala valb valc vald

9、BRpopLpush

BRpopLpush list-key2 list-key1 100  //list-key1值为:vald val6 val7 val5

                   //list-key2值为:val2 vala valb valc
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息