Redis5数据类型2-List

2022-03-16  本文已影响0人  轻轻敲醒沉睡的心灵

1. List简介

Redis中List是基于Linked List实现,双向无环链表,其中元素是字符串类型。特点:

2. List指令

2.1 增加元素

127.0.0.1:6379> lpush fruits apple
1
127.0.0.1:6379> lpush fruits pear banana
3
127.0.0.1:6379>
127.0.0.1:6379> rpush fruits orange
4
127.0.0.1:6379>

2.2 查看元素

lrange key start stop
命令返回start、stop索引之间的所有元素(包含两端的元素),索引从0开始。索引可以是负数,如:-1代表最后边的一个元素。

127.0.0.1:6379> lrange fruits 0 -1
banana
pear
apple
orange 
127.0.0.1:6379>

2.3 获取列表中元素的个数

llen key

127.0.0.1:6379> llen fruits
4
127.0.0.1:6379>

2.4 取出元素

127.0.0.1:6379> lpop fruits
banana
127.0.0.1:6379> rpop fruits
orange
127.0.0.1:6379>

2.5 元素从一个列表转移到另一个列表中

rpoplpush source dest

127.0.0.1:6379> lpush fruits banana
3
127.0.0.1:6379> rpush fruits orange
4
127.0.0.1:6379> lrange fruits 0 -1
banana
pear
apple
orange
127.0.0.1:6379> rpoplpush fruits list1
orange
127.0.0.1:6379> lrange list1 0 -1
orange
127.0.0.1:6379> lrange fruits 0 -1
banana
pear
apple
127.0.0.1:6379>

2.6 获取、设定指定位置的元素

127.0.0.1:6379> lrange fruits 0 -1
banana
pear
apple
banana
127.0.0.1:6379> lindex fruits 1
pear
127.0.0.1:6379> lset fruits 2 apples
OK
127.0.0.1:6379> lrange fruits 0 -1
banana
pear
apples
banana
127.0.0.1:6379>

2.7 删除List中指定元素

lrem key count value
从列表头部开始删除值等于value的元素count次

127.0.0.1:6379> lpush list2 a b c c b a a b c c b a a a a
15
127.0.0.1:6379> lrem list2 1 a
1
127.0.0.1:6379> lrange list2 0 -1
a
a
a
b
c
c
b
a
a
b
c
c
b
a
127.0.0.1:6379> lrem list2 3 a
3
127.0.0.1:6379> lrange list2 0 -1
b
c
c
b
a
a
b
c
c
b
a
127.0.0.1:6379> lrem list2 0 a
3
127.0.0.1:6379> lrange list2 0 -1
b
c
c
b
b
c
c
b
127.0.0.1:6379>

2.8 去除指定范围外的元素

ltrim key start stop

127.0.0.1:6379> lpush list3 0 1 2 3 4 5 6 7 8 9
10
127.0.0.1:6379> lrange list3 0 -1
9
8
7
6
5
4
3
2
1
0
127.0.0.1:6379> ltrim list3 0 4
OK
127.0.0.1:6379> lrange list3 0 -1
9
8
7
6
5
127.0.0.1:6379>

2.9 向列表中插入元素

linsert key before|after pivot value
在列表中从左到右查找值为pivot的元素,然后根据BEFORE还是AFTER来决定将value插入到该元素的前面还是后面。

127.0.0.1:6379> lpush list4 1 2 4 5
4
127.0.0.1:6379> lrange list4 0 -1
5
4
2
1
127.0.0.1:6379> linsert list4 before 2 3
5
127.0.0.1:6379> lrange list4 0 -1
5
4
3
2
1
127.0.0.1:6379>

2.10 阻塞

blpop key [key ...] timeout
brpop key [key ...] timeout
阻塞情况:

上一篇 下一篇

猜你喜欢

热点阅读