目录
一、重要特点
二、常用命令
三、Redis中List类型应用场景
一、重要特点
①Redis中的List,视为双向链表
②Redis中的List,数据可以重复
二、常用命令
格式 | 含义 | 例子 |
rpush key value | 从右边往key中添加value值 | rpush hobby java python |
lpush key value | 从左边往key中添加value值 | lpush hobby c++ c |
lrange key start stop | 从左边开始遍历,从start开始,到stop结束。start和stop是下标,从0开始。 | lrange hobby 1 3 |
lpop key | 删除key的最左边元素 | lpop hobby |
rpop key | 删除key的最右边元素 | rpop hobby |
llen key | 获取key的元素个数 | llen hobby |
127.0.0.1:6379> rpush hobby java python
(integer) 2
127.0.0.1:6379> lpush hobby c++ c // 注意从左边添加时,c++先进,c后进,最后c在c++左边
(integer) 4 // 这里的返回值是当前List中的元素个数
// 此时列表中元素从左到右依次是c、c++、java、python,下标从0到3
127.0.0.1:6379> lrange hobby 1 3
1) "c++"
2) "java"
3) "python"
127.0.0.1:6379> lrange hobby 0 2
1) "c"
2) "c++"
3) "java"
127.0.0.1:6379> rrange hobby 0 2 // 不能从右开始遍历
(error) ERR unknown command 'rrange'
127.0.0.1:6379> lpop hobby
"c"
127.0.0.1:6379> rpop hobby
"python"
127.0.0.1:6379> llen hobby // 删除两个元素后还剩下两个元素
(integer) 2
127.0.0.1:6379> lrange hobby 0 1
1) "c++"
2) "java"
127.0.0.1:6379> lrange hobby 0 -1
// 支持负向索引(-1表示最右边的元素),lrange key 0 -1即可遍历全部元素
1) "c++"
2) "java"
127.0.0.1:6379> lpush hobby java // 允许重复元素
(integer) 3
127.0.0.1:6379> lrange hobby 0 -1
1) "java"
2) "c++"
3) "java"
三、Redis中List类型应用场景
用户的收藏列表
和string的明显区别,list的value对应多个元素