List(数据结构像LinkedList,双向链表数组)
List的基本操作
新增、修改数据
lpush key value1 value2 ... // 从最左端插入一个value
rpush key value1 value2 ... // 从最右端插入一个value
获取数据
lrange key start stop // 从左向右遍历key,start和stop为数组下标,下标从0开始
lrange key 0 -1 // 遍历key所有的list
lindex key index // 查询key下list下标为index的值(相当于查询list.get(index))
llen key // 获取list长度
获取并移除数据
lpop key // 从左边移除一个元素
rpop key // 从右边移除一个元素
扩展操作
规定时间内获取并取出数据
blpop key1 key2 ... timeout // timeout时间内获取并取出最左侧数据
brpop key1 key2 ... timeout // timeout时间内获取并取出最右侧数据
注:当list有数据时,那么不会等待timeout,立即执行获取并取出操作
当list无数据时,则会等待timeout时间后,如果在timeout时间段内新增了数据,则取出
当list无数据且timeout时间后依然没有数据,则返回(nil)
移除指定数据
lrem key count value // 从左边删除count个以key为键value为值的数据
例: