Redis的列表数据类型可以被看做简单的字符串列表。列表按照插入的顺序排列,可以将一个元素插入到这个列表的头部或尾部
向列表中插入值
- LPUSH命令:将多个值插入到列表头部
命令格式:
LPUSH key value [value...]
将一个或者多个value值插入到列表key的头部。如果同时插入多个value值,那么多个value值会按照从左到右的顺序依次插入。例如,对空列表list执行LPUSH list a b c,则列表key的值为c b a
127.0.0.1:6379[5]> lpush student1 171 '男' 22 20180001
4
- RPUSH命令:将多个值从尾部插入
命令格式:
RPUSH key value [value...]
- LINSERT命令:插入一个值到列表中
命令格式:
LINSERT key BEFORE | AFTER pivot value
将值value插入到列表key当中,这个值的位置在值pivot之前或之后
当pivot这个值不存在时,执行该命令无效。当key被看做看列表时,该命令无效
执行该命令,如果成功,则返回插入操作完成后的列表长度。如果只有pivot不存在则返回-1,而如果key不存在,或是空列表则返回0
127.0.0.1:6379[5]> LINSERT student1 AFTER 22 '软件工程1班'
7
127.0.0.1:6379[5]> LINSERT student AFTER 23 '网络工程1班'
0
127.0.0.1:6379[5]> LINSERT student2 AFTER 24 '信息管理1班'
-1
- LPUSHX命令:将值插入到列表头部
命令格式:
LPUSHX key value
与LPUSH比较key必须存在,并且是列表类型,当key不存在时它什么也不做
- RPUSHX命令:将值插入到列表尾部
命令格式:
RPUSHX key value
与RPUSH比较key必须存在,并且是列表类型,当key不存在时它什么也不做
- LSET命令:修改列表元素值
命令格式:
LSET key index value
设置下标为index的列表key的值为value。当下标index参数超出范围时,将会返回错误;当列表为空时也会报错
127.0.0.1:6379[5]> LSET student1 2 10 # 学生1的年龄下标为2
OK
获取列表元素
- LLEN命令:统计列表长度
命令格式:
LLEN key
127.0.0.1:6379[5]> llen student1
7
- LINDEX命令:获取列表元素的值
命令格式:
LINDEX key index
获取列表key中下标为index的元素
127.0.0.1:6379[5]> LINDEX student2 1
网络工程1班
127.0.0.1:6379[5]> LINDEX student2 2
1994-04-23
- LRANGE命令:获取列表指定区间内的元素
命令格式:
LRANGE key start end
127.0.0.1:6379[5]> LRANGE student1 0 2 # 获取列表student1中下标0~2的元素
20180001
11
10
127.0.0.1:6379[5]> LRANGE student1 0 -1 # 获取列表student1中所有的元素
20180001
11
10
男
171
75
1996-02-14
127.0.0.1:6379[5]> LRANGE student1 5 -1 # 获取列表student1中下标5~-1的元素
75
1996-02-14
删除列表元素
- LPOP命令:返回并删除列表的头元素
命令格式:
LPOP key
127.0.0.1:6379[5]> LPOP student1
20180001
127.0.0.1:6379[5]> LRANGE student1 0 -1 # 再查看时第一个元素已被删除
11
10
男
171
75
1996-02-14
- RPOP命令:返回并删除列表的尾元素
命令格式:
RPOP key
127.0.0.1:6379[5]> RPOP student1
1996-02-14
- BLPOP命令:在指定时间内删除列表的头元素
命令格式:
BLPOP key [key...] timeout
BLPOP 是列表的阻塞式(blocking)弹出原语。
它是 LPOP key 命令的阻塞版本,当给定列表内没有任何元素可供弹出的时候,连接将被 BLPOP 命令阻塞,直到等待超时或发现可弹出元素为止。
当给定多个 key 参数时,按参数 key 的先后顺序依次检查各个列表,弹出第一个非空列表的头元素。
还没写完…