|NO.Z.00007|——————————|BigDataEnd|——|Hadoop&Redis.V07|——|Redis.v07|数据类型.v02|
一、list列表类型
### --- list列表类型
~~~ list列表类型可以存储有序、可重复的元素
~~~ 获取头部或尾部附近的记录是极快的
~~~ list的元素个数最多为2^32-1个(40亿)
二、常见操作命令如下表:
| 命令名称 | 命令格式 | 描述 |
| lpush | lpush key v1 v2 v3 ... | 从左侧插入列表 |
| lpop | lpop key | 从列表左侧取出 |
| rpush | rpush key v1 v2 v3 ... | 从右侧插入列表 |
| rpop | rpop key | 从列表右侧取出 |
| lpushx | lpushx key value | 将值插入到列表头部 |
| rpushx | rpushx key value | 将值插入到列表尾部 |
| blpop | blpop key timeout | 从列表左侧取出,当列表为空时阻塞, 可以设置最大阻塞时间,单位为秒 |
| brpop | blpop key timeout | 从列表右侧取出,当列表为空时阻塞, 可以设置最大阻塞时间,单位为秒 |
| llen | llen key | 获得列表中元素个数 |
| lindex | lindex key index | 获得列表中下标为index的元素 index从0开始 |
| lrange | lrange key start end | 返回列表中指定区间的元素,区间通过start和end指定 |
| lrem | lrem key count value | 删除列表中与value相等的元素 当count>0时, lrem会从列表左边开始删除;当count<0时。lrem会从列表后边开始删除;当count=0时, lrem删除所有值为value的元素 |
| lset | lset key index value | 将列表index位置的元素设置成value的值 |
| ltrim | ltrim key start end | 对列表进行修剪,只保留start到end区间 |
| rpoplpush | rpoplpush key1 key2 | 从key1列表右侧弹出并插入到key2列表左侧 |
| brpoplpush | brpoplpush key1 key2 | 从key1列表右侧弹出并插入到key2列表左侧,会阻塞 |
| linsert | linsert key BEFORE/AFTER pivot value |
将value插入到列表,且位于值pivot之前或之后 |
### --- 应用场景:
~~~ 作为栈或队列使用
~~~ 列表有序可以作为栈和队列使用
~~~ 可用于各种列表,比如用户列表、商品列表、评论列表等。
### --- 举例:
127.0.0.1:6379> lpush list: 1 2 3 4 5 3
(integer) 5
127.0.0.1:6379> lrange list:1 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"
~~~ # 从0开始
127.0.0.1:6379> lpop list:1
"5"
127.0.0.1:6379> rpop list:1
"1"
127.0.0.1:6379> lindex list:1 1
"3"
127.0.0.1:6379> lrange list:1 0 -1
1) "4"
2) "3"
3) "2"
127.0.0.1:6379> lindex list:1 1
"3"
127.0.0.1:6379> rpoplpush list:1 list:2
"2"
127.0.0.1:6379> lrange list:2 0 -1
1) "2"
127.0.0.1:6379> lrange list:1 0 -1
1) "4"
2) "3"
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
浙公网安备 33010602011771号