List--列表
插入列表
- 头插法
语法:LPUSH key value1 value2...
127.0.0.1:6379> lpush numbers 1 2 3
(integer) 3 # 显示插入数据的num
- 尾插法
语法:RPUSH key value1 value2...
127.0.0.1:6379> rpush numbers 8 9 0
(integer) 3
查询列表
语法:LRANGE key start end # 返回指定区间内的内容
127.0.0.1:6379> lpush numbers 1 2 3
(integer) 3
127.0.0.1:6379> lrange numbers 0 -1
1) "3"
2) "2"
3) "1"
更新列表
语法:LSET key index value
127.0.0.1:6379> lpush num 1 2 3 4 5 6
(integer) 6
127.0.0.1:6379> lset num 2 9 # redis下标从0开始
OK
127.0.0.1:6379> lrange num 0 -1
1) "6"
2) "5"
3) "9" *
4) "3"
5) "2"
6) "1"
删除列表
- 头删法
语法:LPOP key
127.0.0.1:6379> lpop num
"6" # 删除的value
127.0.0.1:6379> lrange num 0 -1
1) "5"
2) "9"
3) "3"
4) "2"
5) "1"
- 尾删法
语法:RPOP key
127.0.0.1:6379> rpop num
"1"
127.0.0.1:6379> lrange num 0 -1
1) "5"
2) "9"
3) "3"
4) "2"
- 列表为空时 阻塞的删除
语法:BLPOP key time | BRPOP key time
# 移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止
127.0.0.1:6379> blpop mylist 10
(nil)
(10.08s)# 移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止
127.0.0.1:6379> brpop mylist 10
(nil)
(10.05s)
- 删除指定的值
语法:LERM key count value # 返回的是删除的个数
- count > 0 : 从表头开始向表尾搜索,移除与value相等的元素,数量为count。
- count < 0 : 从表尾开始向表头搜索,移除与value相等的元素,数量为count的绝对值。
- count = 0 : 移除表中所有与value相等的值。
127.0.0.1:6379> rpush numlist 1 2 3 4 5 6 7 8
(integer) 8
127.0.0.1:6379> lrange numlist 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
7) "7"
8) "8"
127.0.0.1:6379> lrem numlist 0 2 # 删除所有值为2的元素
(integer) 1
127.0.0.1:6379> lrem numlist -2 1 # 从表尾开始删除2个值为1的元素
(integer) 1
127.0.0.1:6379> lrem numlist 1 4 # 从表头开始删除2个值为4的元素
(integer) 1lrange numlist 0 -1
1) "3"
2) "6"
3) "7"4) "8"
- 截取数据
语法:LTRIM key start end
127.0.0.1:6379> ltrim numlist 2 5 # 保留下标为2和5之间的所有元素,删除其余元素
OK
127.0.0.1:6379> lrange numlist 0 -1
1) "6"
2) "7"
3) "8"