温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Redis列表的介绍及用法

发布时间:2021-07-30 14:54:46 来源:亿速云 阅读:158 作者:chen 栏目:大数据

这篇文章主要讲解了“Redis列表的介绍及用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Redis列表的介绍及用法”吧!

Redis列表(List)

参考:https://www.runoob.com/redis/redis-lists.html

单值多value

1.lpush/rpush/lrange

                                 索引  0 1 2 3 4 
lpush 1 2 3 4 5                   5 4 3 2 1   先进后出
rpush 1 2 3 4 5                  1 2 3 4 5    先进先出

127.0.0.1:9736> LPUSH list01 1 2 3 4 5
(integer) 5
127.0.0.1:9736> LRANGE list01 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"
127.0.0.1:9736> rpush list02 1 2 3 4 5
(integer) 5
127.0.0.1:9736> LRANGE list02 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
127.0.0.1:9736>

2. lpop/rpop

lpop 从索引首位置出

rpop 从索引尾位置出

127.0.0.1:9736> lpop list01 
"5"
127.0.0.1:9736> lrange list01 0 -1
1) "4"
2) "3"
3) "2"
4) "1"
127.0.0.1:9736> lpop list02
"1"
127.0.0.1:9736> LRANGE list02 0 -1
1) "2"
2) "3"
3) "4"
4) "5"
127.0.0.1:9736> rpop list01
"1"
127.0.0.1:9736> rpop list02
"5"
127.0.0.1:9736> lrange list01 0 -1
1) "4"
2) "3"
3) "2"
127.0.0.1:9736> lrange list02 0 -1
1) "2"
2) "3"
3) "4"

3.lindex 查看值所在索引

127.0.0.1:9736> lrange list01 0 -1
1) "4"
2) "3"
3) "2"
127.0.0.1:9736> lrange list02 0 -1
1) "2"
2) "3"
3) "4"

127.0.0.1:9736> lindex list01 1
"3"
127.0.0.1:9736> lindex list02 1
"3"

4. llen 查看list 的长度

127.0.0.1:9736> lrange list01 0 -1
1) "4"
2) "3"
3) "2"
127.0.0.1:9736> llen list01
(integer) 3

5. lrem key 删N个同样的value

此例中删除2个3

127.0.0.1:9736> rpush list03 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5
(integer) 15
127.0.0.1:9736> lrem list03 2 3
(integer) 2
127.0.0.1:9736> LRANGE list03 0 -1
 1) "1"
 2) "1"
 3) "1"
 4) "2"
 5) "2"
 6) "2"
 7) "3"
 8) "4"
 9) "4"
10) "4"
11) "5"
12) "5"
13) "5"
127.0.0.1:9736>

6. ltrim key 开始index 结束index,截取指定范围的值后再赋值给 key

此例截取0至3 就是 1 2 3 4 ,再赋值给 list01 。list01最终 1 2 3 4

127.0.0.1:9736> rpush list01 1 2 3 4 5 6
(integer) 6
127.0.0.1:9736> lrange list01 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
127.0.0.1:9736> LTRIM list01 0 3
OK
127.0.0.1:9736> lrange list01 0 -1
1) "1"
2) "2"
3) "3"
4) "4"

7. rpoplpush 源列表 目的列表

从源列表尾部弹出一个元素 到 目的列表的头部

127.0.0.1:9736> lrange list01 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
127.0.0.1:9736> lrange list02 0 -1
1) "2"
2) "3"
3) "4"
127.0.0.1:9736> rpoplpush list01 list02
"4"
127.0.0.1:9736> lrange list02 0 -1
1) "4"
2) "2"
3) "3"
4) "4"
127.0.0.1:9736> lrange list01 0 -1
1) "1"
2) "2"
3) "3"

8. lset key index value

127.0.0.1:9736> lrange list01 0 -1
1) "1"
2) "2"
3) "3"
127.0.0.1:9736> lset list01 0 x
OK
127.0.0.1:9736> lrange list01  0 -1
1) "x"
2) "2"
3) "3"

9. linsert key before/after 值1 值2

在指定值的 前/后 插入值

127.0.0.1:9736> lrange list01  0 -1
1) "x"
2) "2"
3) "3"
127.0.0.1:9736> linsert list01 before x a
(integer) 4
127.0.0.1:9736> lrange list01 0 -1
1) "a"
2) "x"
3) "2"
4) "3"
127.0.0.1:9736> linsert list01 after x b
(integer) 5
127.0.0.1:9736> lrange list01 0 -1
1) "a"
2) "x"
3) "b"
4) "2"
5) "3"

10. 性能总结:

它是一个字符串链表,left right 都可以插入添加,

如果键不存在,创建新的链表 如果键已存在,新增内容; 如果值全移除, 对应键也就消失了 ;

链表的操作无论头和尾效率都很高, 但假如是对中间元素进行操作. 效率就很低

感谢各位的阅读,以上就是“Redis列表的介绍及用法”的内容了,经过本文的学习后,相信大家对Redis列表的介绍及用法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI