Redis中的List数据类型的命令行操作

List

Redis的列表允许用户从两端推入(push)和弹出(pop)元素。
列表是由多个字符串组成的有序可重复的序列。是链表结构

1. LPUSH

LPUSH key value [value …]
依次压入链表中 返回的是生成的链表长度
且可以通过该命令追加。

127.0.0.1:6379> LPUSH mylist 1 2 3 4 5 6 7 8
(integer) 8
127.0.0.1:6379> LRANGE mylist 0 8
1) "8"
2) "7"
3) "6"
4) "5"
5) "4"
6) "3"
7) "2"
8) "1"
127.0.0.1:6379> LPUSH mylist 1 2 3 4
(integer) 12
127.0.0.1:6379> LRANGE mylist 0 12
 1) "4"
 2) "3"
 3) "2"
 4) "1"
 5) "8"
 6) "7"
 7) "6"
 8) "5"
 9) "4"
10) "3"
11) "2"
12) "1"

2. LRANGE

LRANGE key start stop
返回的是索引是start到end,start从0开始。

3. LLEN

返回链表的长度

127.0.0.1:6379> llen mylist
(integer) 12

4. LINDEX

第几位的值,从栈顶开始算

127.0.0.1:6379> LINDEX mylist 0
"4"
127.0.0.1:6379> LINDEX mylist 2
"2"
127.0.0.1:6379> LRANGE mylist 0 12
 1) "4"
 2) "3"
 3) "2"
 4) "1"
 5) "8"
 6) "7"
 7) "6"
 8) "5"
 9) "4"
10) "3"
11) "2"
12) "1"

5. LPOP

弹出栈顶元素,并返回值

127.0.0.1:6379> LPOP mylist
"4"
127.0.0.1:6379> LRANGE mylist 0 12
 1) "3"
 2) "2"
 3) "1"
 4) "8"
 5) "7"
 6) "6"
 7) "5"
 8) "4"
 9) "3"
10) "2"
11) "1"

6. LINSERT

插入元素
insert key after|before search value
在链表key中寻找值为search的元素,并在改元素前(或后)插入值value
注:如果有多个值search以第一个为主,执行命令就结束了,因此不会插入多个value

127.0.0.1:6379> LINSERT mylist BEFORE 2 88
(integer) 12
127.0.0.1:6379> LINSERT mylist AFTER 2 99
(integer) 13
127.0.0.1:6379> LRANGE mylist 0 15
 1) "3"
 2) "88"
 3) "2"
 4) "99"
 5) "1"
 6) "8"
 7) "7"
 8) "6"
 9) "5"
10) "4"
11) "3"
12) "2"
13) "1"

7. LPUSHX

如果存在list,才会去push

127.0.0.1:6379> LPUSHX mylistnotexist 7
(integer) 0
127.0.0.1:6379> LPUSHX mylist 7
(integer) 14
127.0.0.1:6379> keys *
1) "mylisy"
2) "mylist"
127.0.0.1:6379> LRANGE mylist 0 15
 1) "7"
 2) "3"
 3) "88"
 4) "2"
 5) "99"
 6) "1"
 7) "8"
 8) "7"
 9) "6"
10) "5"
11) "4"
12) "3"
13) "2"
14) "1"
127.0.0.1:6379> LRANGE mylistnotexist 0 2
(empty list or set)

8.LREM

LREM key count value
删除链表名为key中的count个value的值,顺序按出栈的顺序
返回的值是删除的值的个数(改变了多少个元素)

127.0.0.1:6379> LPUSH mylist 2 2 2 2
(integer) 18
127.0.0.1:6379> LRANGE mylist 0 18
 1) "2"
 2) "2"
 3) "2"
 4) "2"
 5) "7"
 6) "3"
 7) "88"
 8) "2"
 9) "99"
10) "1"
11) "8"
12) "7"
13) "6"
14) "5"
15) "4"
16) "3"
17) "2"
18) "1"
127.0.0.1:6379> LREM mylist 5 2
(integer) 5
127.0.0.1:6379> LRANGE mylist 0 18
 1) "7"
 2) "3"
 3) "88"
 4) "99"
 5) "1"
 6) "8"
 7) "7"
 8) "6"
 9) "5"
10) "4"
11) "3"
12) "2"
13) "1"
127.0.0.1:6379>

9. LSET

LSET key index value
设置指定位置的值。

127.0.0.1:6379> LRANGE mylist 0 18
 1) "7"
 2) "3"
 3) "88"
 4) "99"
 5) "1"
 6) "8"
 7) "7"
 8) "6"
 9) "5"
10) "4"
11) "3"
12) "2"
13) "1"
127.0.0.1:6379> LSET mylist 2 666666
OK
127.0.0.1:6379> LRANEG mylist 0 12
(error) ERR unknown command 'LRANEG'
127.0.0.1:6379> Lrange mylist 0 12
 1) "7"
 2) "3"
 3) "666666"
 4) "99"
 5) "1"
 6) "8"
 7) "7"
 8) "6"
 9) "5"
10) "4"
11) "3"
12) "2"
13) "1"
127.0.0.1:6379>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值