详解Redis之list类型及操作

    xiaoxiao2025-08-27  18

    最近想写一些Redis学习教程来帮助初学者学习。今天讲的就是list类型及操作

     

    list类型常用命令

     

    lrange

    查看列表元素。0表示开头元素,-1表示结尾元素。

    语法:lrange key start_index end_index

    redis 127.0.0.1:6379> lpush mylist world

    (integer) 1  redis 127.0.0.1:6379> lpush mylist hello

    (integer) 2  redis 127.0.0.1:6379> lrange mylist 0 -1  1) "hello"  2) "world"  redis 127.0.0.1:6379>

     

    lpush

    在key对应list的头部添加字符串元素 

    语法:lpush key element

    redis 127.0.0.1:6379> rpush mylist2 hello

    (integer) 1  redis 127.0.0.1:6379> rpush mylist2 world

    (integer) 2  redis 127.0.0.1:6379> lrange mylist2 0 -1  1) "hello"  2) "world"  redis 127.0.0.1:6379>

     

    rpush

    在key对应的list的尾部添加字符串元素

    语法:rpush key element

    redis 127.0.0.1:6379> rpush mylist3 hello

    (integer) 1  redis 127.0.0.1:6379> rpush mylist3 world

    (integer) 2  redis 127.0.0.1:6379> linsert mylist3 before world there

    (integer) 3 redis  127.0.0.1:6379> lrange mylist3 0 -1  1) "hello"  2) "there"  3) "world"  redis 127.0.0.1:6379>

     

    linsert

    在可以对应的list的目标位置插入元素

    语法:linsert key before|after target_element  element

    redis 127.0.0.1:6379> linsert mylist3 before world there

    (integer) 3

     

    lset

    设置list中指定下标的元素值(下标从0开始

    语法:lset key index element

    redis 127.0.0.1:6379> lset mylist4 0 four

    OK

    redis 127.0.0.1:6379> lset mylist4 -2 five

    OK

    redis 127.0.0.1:6379> lrange mylist4 0 -1  1) "four"  2) "five"  3) "three"  redis 127.0.0.1:6379>

     

    lrem

    从key对应list中删除count个和value相同的元素。 count>0:从头到尾的顺序,count<0:从尾到头的顺序,count=0:全部

    语法:lrem key count element

    redis 127.0.0.1:6379> rpush mylist5 hello

    (integer) 1  redis 127.0.0.1:6379> rpush mylist5 hello

    (integer) 2  redis 127.0.0.1:6379> rpush mylist5 foo

    (integer) 3  redis 127.0.0.1:6379> rpush mylist5 hello

    (integer) 4  redis 127.0.0.1:6379> lrem mylist5 2 hello

    (integer) 2  redis 127.0.0.1:6379> lrange mylist5 0 -1  1) "foo"  2) "hello"  redis 127.0.0.1:6379>

     

    ltrim

    保留指定范围内的数据(包含头尾)。

    语法:ltrim key start_index end_index

    redis 127.0.0.1:6379> rpush mylist8 one

    (integer) 1  redis 127.0.0.1:6379> rpush mylist8 two

    (integer) 2  redis 127.0.0.1:6379> rpush mylist8 three

    (integer) 3  redis 127.0.0.1:6379> rpush mylist8 four

    (integer) 4  redis 127.0.0.1:6379> ltrim mylist8 1 -1 OK

    redis 127.0.0.1:6379> lrange mylist8 0 -1  1) "two"  2) "three"  3) "four"  redis 127.0.0.1:6379>

     

    lpop

    从list头部删除元素,并返回元素

    语法:lpop key 

    redis 127.0.0.1:6379> lrange mylist 0 -1  1) "hello"  2) "world"  redis 127.0.0.1:6379> lpop mylist "hello"  redis 127.0.0.1:6379> lrange mylist 0 -1  1) "world"  redis 127.0.0.1:6379>

     

    rpop

    从list尾部删除元素,并返回元素

    语法:rpop key

    redis 127.0.0.1:6379> lrange mylist2 0 -1  1) "hello"  2) "world"  redis 127.0.0.1:6379> rpop mylist2 "world"  redis 127.0.0.1:6379> lrange mylist2 0 -1  1) "hello"  redis 127.0.0.1:6379>

     

    rpoppush

    从第一个list的尾部移除元素并添加到第二个list的头部,最后返回被移除的元素值,整个操作是原子的。如果第一个list是空或者不存在返回nil

    语法:rpoppush list1 list2  

    redis 127.0.0.1:6379> lrange mylist5 0 -1  1) "three"  2) "foo"  3) "hello"  redis 127.0.0.1:6379> lrange mylist6 0 -1  1) "hello"  2) "foo"  redis 127.0.0.1:6379> rpoplpush mylist5 mylist6 "hello"  redis 127.0.0.1:6379> lrange mylist5 0 -1  1) "three"  2) "foo"  redis 127.0.0.1:6379> lrange mylist6 0 -1  1) "hello"  2) "hello"  3) "foo"  redis 127.0.0.1:6379>

     

    lindex

    返回index位置,list中的元素

    语法:lindex key index

    redis 127.0.0.1:6379> lrange mylist5 0 -1  1) "three"  2) "foo"  redis 127.0.0.1:6379> lindex mylist5 0  "three" redis 127.0.0.1:6379> lindex mylist5 1  "foo"  redis 127.0.0.1:6379>

     

    llen

    返回key对应list的长度

    语法:llen key

    redis 127.0.0.1:6379> llen mylist5

    (integer) 2  redis 127.0.0.1:6379>

     

     

     

     

    原文来自:极客头条

    转载请注明原文地址: https://ju.6miu.com/read-1302041.html
    最新回复(0)