1.存储数据

1.1 批量存储数据,可重复

左侧插入:lpush key value [value,value]

redis like查询 redis list查询_Redis

右侧插入:rpush key value [value,value]

redis like查询 redis list查询_获取数据_02

这时候数据应该是 mmp ycy wxy 7。

 

1.2.存储数据,必须是list类型的key存在才能插入,不能批量

左侧插入:lpushx key value 

右侧插入:rpushx key value

redis like查询 redis list查询_数据_03

 

 这时候数据应该是 fj mmp ycy wxy 7。

 

1.3.存储数据,存储时指定索引位置,会覆盖原有数据

lset key index value

redis like查询 redis list查询_存储数据_04

 

  这时候数据应该是 fj mmp ycy wxy ddd。

 

 

2.获取数据

2.1.获取指定索引范围内的数据

lrange key start stop

start 从0开始

stop -1表示倒数第一个,-2表示倒数第二个

redis like查询 redis list查询_Redis_05

 

 

2.2.指定索引位置的数据

lindex key index

redis like查询 redis list查询_获取数据_06

 

 

2.3.获取整个列表的长度

llen key

redis like查询 redis list查询_获取数据_07

 

2.4弹栈方式获取数据,左侧弹出或右侧弹出,弹出的数据从List中移除了,这种其实算是查询和删除的结合

左侧弹出:lpop  key

redis like查询 redis list查询_获取数据_08

右侧弹出:rpop key

redis like查询 redis list查询_存储数据_09

 

3.删除数据

3.1 lrem  key count value

删除列表中count 个 value,count>0时从左侧删,count<0时从右侧删,count==0删除全部

redis like查询 redis list查询_获取数据_10

redis like查询 redis list查询_Redis_11

 

 先是从左侧,删除2个value=7,再删除所有的value=7。

 

3.2 保留列表中指定范围内的数据,其他都移除

ltrim key start stop,参数跟lrange一样

redis like查询 redis list查询_获取数据_12

 

 保留了0到2索引对应的值。

 

3.3 将一个列表的最后一个数据插入到另一个列表的第一个位置

rpoplpush key1 key 2

其实就是弹出和存储操作的结合,但是具有原子性

redis like查询 redis list查询_数据_13

 

 从右侧顺序移除value到了新的列表superstar的左侧。

 

PS:如果要求不高,可以用list做消息队列,lpush和brpop,但是要注意异常后的重试,因为redis内置连接长时间阻塞后会断开。

Brpop 命令移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。