Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边),类似于双向链表结构,可从序列两端推入或者弹出元素。
key | value |
key | [北京,上海,广州,深圳,北京](允许重复) |
常用操作:
1、lpush
将一个或多个值 value 插入到列表 key 的表头(最左边)
127.0.0.1:6379> lpush k1 1 2 3 4 5
(integer) 5
2、rpush
将一个或多个值 value 插入到列表 key 的表尾(最右边)
127.0.0.1:6379> lpush k1 1 2 3 4 5
(integer) 5
127.0.0.1:6379> rpush k1 0
(integer) 6
3、lrange
获取列表 key 中指定区间内的元素,0 表示列表的第一个元素,以 1 表示列表的第二个元素, -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
127.0.0.1:6379> lrange k1 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"
6) "0"
4、lpop
从左边获取列表 key 的一个元素,并将该元素移除
5、rpop
从右边获取列表 key 的一个元素,并将该元素移除
127.0.0.1:6379> lrange k1 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"
6) "0"
127.0.0.1:6379> lpop k1
"5"
127.0.0.1:6379> rpop k1
"0"
127.0.0.1:6379> lrange k1 0 -1
1) "4"
2) "3"
3) "2"
4) "1"
6、lindex
获取列表 key 中下标为指定 index 的元素
127.0.0.1:6379> lrange k1 0 -1
1) "4"
2) "3"
3) "2"
4) "1"
127.0.0.1:6379> lindex k1 3
"1"
127.0.0.1:6379> lindex k1 1
"3"
7、llen
获取列表 key 的长度
127.0.0.1:6379> llen k1
(integer) 4
8、类型
127.0.0.1:6379> type k1
list
9、其他操作
lrem:从左到右删除列表中指定个数的并与指定value值相等的value
127.0.0.1:6379> lrem k1 1 4
(integer) 1
127.0.0.1:6379> lrange k1 0 -1
1) "3"
2) "2"
3) "1"
ltrim:删除指定区域外的元素,比如LTRIM list 0 2 ,表示只保留列表 list 的前三个元素,其余元素全部删除
127.0.0.1:6379> ltrim k1 0 1
OK
127.0.0.1:6379> lrange k1 0 -1
1) "3"
2) "2"
rpoplpush:RPOPLPUSH source destination,将列表 source 中的最后一个元素(尾元素)弹出插入到列表 destination ,作为 destination 列表的的头元素
127.0.0.1:6379> rpoplpush k2 k1
"1"
127.0.0.1:6379> lrange k1 0 -1
1) "1"
2) "3"
3) "2"
lset:将列表 key 下标为 index 的元素的值设置为 value
127.0.0.1:6379> lset k1 2 10
OK
127.0.0.1:6379> lrange k1 0 -1
1) "1"
2) "3"
3) "10"