Redis入门--数据结构之list

  • 存储list
    ArrayList使用数组方式:查询快,删除增加元素较慢。
    LinkedList使用双向链接方式 :出入删除速度快
    双向链表中添加数据
    双向链表中删除数据
  • 存储list常用命令
    两端添加、查看列表、两端弹出、获取列表元素个数、扩展命令
Microsoft Windows [版本 10.0.16299.125]
(c) 2017 Microsoft Corporation。保留所有权利。
C:\Users\YUANRUI>redis-cli
127.0.0.1:6379> lpush mylist a b c                 --------------从左边插入元素
(integer) 3
127.0.0.1:6379> lpush mylist 1 2 3
(integer) 6
127.0.0.1:6379> rpush mylist2 a b c                 --------------从右边插入元素
(integer) 3
127.0.0.1:6379> rpush mylist2 1 2 3
(integer) 6
127.0.0.1:6379> lrange mylist 0 5                  -----------------查看元素   从0下标开始,到5下标
1) "3"
2) "2"
3) "1"
4) "c"
5) "b"
6) "a"
127.0.0.1:6379> lrange mylist2 0 -1                -----------------查看元素   从0下标开始,到最后一个
1) "a"
2) "b"
3) "c"
4) "1"
5) "2"
6) "3"
127.0.0.1:6379> lrange mylist2 0 -2               -----------------查看元素   从0下标开始,到倒数第二个
1) "a"
2) "b"
3) "c"
4) "1"
5) "2"
127.0.0.1:6379> lpop mylist
"3"
127.0.0.1:6379> lrange mylist 0 -1
1) "2"
2) "1"
3) "c"
4) "b"
5) "a"
127.0.0.1:6379> rpop mylist2                             -----------------从右边弹出元素
"3"
127.0.0.1:6379> lrange mylist2 0 -1
1) "a"
2) "b"
3) "c"
4) "1"
5) "2"
127.0.0.1:6379> llen mylist                              --------------获取列表中元素个数
(integer) 5
127.0.0.1:6379> llen mylist2
(integer) 5
127.0.0.1:6379> llen mylist3
(integer) 0
127.0.0.1:6379> lpushx mylist x                      -------------从列表左边push一个元素
(integer) 6
127.0.0.1:6379> lrange mylist 0 -1
1) "x"
2) "2"
3) "1"
4) "c"
5) "b"
6) "a"
127.0.0.1:6379> lpushx mylist3 x
(integer) 0
127.0.0.1:6379> lpushx mylist2 y                    -------------从列表右边push一个元素
(integer) 6
127.0.0.1:6379> lrange mylist2 0 -1
1) "y"
2) "a"
3) "b"
4) "c"
5) "1"
6) "2"
127.0.0.1:6379> lpush mylist 1 2 3
(integer) 9
127.0.0.1:6379> lpush mylist3 1 2 3
(integer) 3
127.0.0.1:6379> lpush mylist3 1 2 3
(integer) 6
127.0.0.1:6379> lpush mylist3 1 2 3
(integer) 9
127.0.0.1:6379> lrange mylist3 0 -1
1) "3"
2) "2"
3) "1"
4) "3"
5) "2"
6) "1"
7) "3"
8) "2"
9) "1"
127.0.0.1:6379> lrem mylist3 2 3                   --------------------------删除元素 3     2>0,从左向右遍历,删除俩个3
(integer) 2
127.0.0.1:6379> lrange mylist3 0 -1
1) "2"
2) "1"
3) "2"
4) "1"
5) "3"
6) "2"
7) "1"
127.0.0.1:6379> lrem mylist3 -2 1                 -----------------------------删除元素1   -2<0,从右向左遍历,删除俩个1
(integer) 2
127.0.0.1:6379> lrange mylist3 0 -1
1) "2"
2) "1"
3) "2"
4) "3"
5) "2"
127.0.0.1:6379> lrem mylist3 0 2                 -----------------------------删除元素2  0==0,从右向左遍历,删除所有2元素
(integer) 3
127.0.0.1:6379> lrange mylist3 0 -1
1) "1"
2) "3"
127.0.0.1:6379> lrange mylist 0 -1
1) "3"
2) "2"
3) "1"
4) "x"
5) "2"
6) "1"
7) "c"
8) "b"
9) "a"
127.0.0.1:6379> lset mylist 3 mmm           --------------------------------在下标3插入元素mmm
OK
127.0.0.1:6379> lrange mylist 0 -1
1) "3"
2) "2"
3) "1"
4) "mmm"
5) "2"
6) "1"
7) "c"
8) "b"
9) "a"
127.0.0.1:6379> lpush mylist4 a b c
(integer) 3
127.0.0.1:6379> lpush mylist4 a b c
(integer) 6
127.0.0.1:6379> lrange mylist4 0 -1
1) "c"
2) "b"
3) "a"
4) "c"
5) "b"
6) "a"
127.0.0.1:6379> linsert mylist4 before b 11                  ----------------在b元素前插入11
(integer) 7
127.0.0.1:6379> lrange mylist4 0 -1
1) "c"
2) "11"
3) "b"
4) "a"
5) "c"
6) "b"
7) "a"
127.0.0.1:6379> linsert mylist4 after b 22                        ----------------在b元素前插入22
(integer) 8
127.0.0.1:6379> lrange mylist4 0 -1
1) "c"
2) "11"
3) "b"
4) "22"
5) "a"
6) "c"
7) "b"
8) "a"
127.0.0.1:6379> lpush mylist5 1 2 4
(integer) 3
127.0.0.1:6379> lpush mylist5 a b c
(integer) 6
127.0.0.1:6379> lrange mylist5 0 -1
1) "c"
2) "b"
3) "a"
4) "4"
5) "2"
6) "1"
127.0.0.1:6379> rpoplpush mylist5 mylist6  ----------------从mylist5邮编弹出一个元素插入到mylist6左边(常用于消息系统的暂存功能)
"1"
127.0.0.1:6379> lrange mylist6 0 -1
1) "1"
127.0.0.1:6379>
发布了20 篇原创文章 · 获赞 1 · 访问量 220

猜你喜欢

转载自blog.csdn.net/qq_33670157/article/details/104497583