redis的vaule之list

list 类型

list 是一个链表结构,可以理解为一个每个子元素都是 string 类型的双向链表。主要功能是 push、pop、获取一个范围的所有值等。操作中 key 理解为链表的名字。

List 类型数据操作指令简介

lpush key string 在 key 对应 list 的头部添加字符串元素,返回 1 表示成功,0 表示 key 存在且不是 list 类型。

rpush key string 在 key 对应 list 的尾部添加字符串元素。

llen key 返回 key 对应 list 的长度,如果 key 不存在返回 0,如果 key 对应类型不是 list返回错误。

lrange key start end 返回指定区间内的元素,下标从 0 开始,负值表示从后面计算,-1 表示倒数第一个元素 ,key 不存在返回空列表。

ltrim key start end 截取 list 指定区间内元素,成功返回 1,key 不存在返回错误。

lset key index value 设置 list 中指定下标的元素值,成功返回 1,key 或者下标不存在返回错误。

lrem key count value 从 List 的头部(count正数)或尾部(count负数)删除一定数量(count)匹配 value 的元素,返回删除的元素数量。count 为 0 时候删除全部。

lpop key 从 list 的头部删除并返回删除元素。如果 key 对应 list 不存在或者是空返回 nil,如果 key 对应值不是 list 返回错误。

rpop key 从 list 的尾部删除并返回删除元素。

blpop key1 ...... keyN timeout 从左到右扫描,返回对第一个非空 list 进行 lpop 操作并返回,比如 blpop list1 list2 list3 0 ,如果 list 不存在 list2,list3 都是非空则对 list2 做lpop 并返回从 list2 中删除的元素。如果所有的 list 都是空或不存在,则会阻塞 timeout秒,timeout 为 0 表示一直阻塞。当阻塞时,如果有 client 对 key1...keyN 中的任意 key进行 push 操作,则第一在这个 key 上被阻塞的 client 会立即返回。如果超时发生,则返回nil。有点像 unix 的 select 或者 poll。

brpop 同 blpop,一个是从头部删除一个是从尾部删除。

你可能感兴趣的:(redis的vaule之list)