首页 / REDIS / Redis的List类型
Redis的List类型
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Redis的List类型,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3125字,纯文字阅读大概需要5分钟。
内容图文
![Redis的List类型](/upload/InfoBanner/zyjiaocheng/876/1552559d04a046049c1c847d0ba87d8c.jpg)
Redis 列表命令
下表列出了列表相关的基本命令:
序号 | 命令及描述 |
---|---|
1 | BLPOP key1 [key2 ] timeout 移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。 |
2 | BRPOP key1 [key2 ] timeout 移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。 |
3 | BRPOPLPUSH source destination timeout 从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。 |
4 | LINDEX key index 通过索引获取列表中的元素 |
5 | LINSERT key BEFORE|AFTER pivot value 在列表的元素前或者后插入元素 |
6 | LLEN key 获取列表长度 |
7 | LPOP key 移出并获取列表的第一个元素 |
8 | LPUSH key value1 [value2] 将一个或多个值插入到列表头部 |
9 | LPUSHX key value 将一个值插入到已存在的列表头部 |
10 | LRANGE key start stop 获取列表指定范围内的元素 |
11 | LREM key count value 移除列表元素 |
12 | LSET key index value 通过索引设置列表元素的值 |
13 | LTRIM key start stop 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。 |
14 | RPOP key 移除列表的最后一个元素,返回值为移除的元素。 |
15 | RPOPLPUSH source destination 移除列表的最后一个元素,并将该元素添加到另一个列表并返回 |
16 | RPUSH key value1 [value2] 在列表中添加一个或多个值 |
17 | RPUSHX key value 为已存在的列表添加值 |
示例如下:
[root@iZbp143t3oxhfc3ar7jey0Z ~]# redis-cli 127.0.0.1:6379> lpush list1 a b c d e (integer) 5 127.0.0.1:6379> LRANGE list1 0 5 1) "e" 2) "d" 3) "c" 4) "b" 5) "a" 127.0.0.1:6379> LRANGE list1 0 7 1) "e" 2) "d" 3) "c" 4) "b" 5) "a" 127.0.0.1:6379> RPUSH list2 1 2 3 4 5 (integer) 5 127.0.0.1:6379> LRANGE list2 0 7 1) "1" 2) "2" 3) "3" 4) "4" 5) "5" 127.0.0.1:6379> LRANGE list1 0 -1 1) "e" 2) "d" 3) "c" 4) "b" 5) "a" 127.0.0.1:6379> LINDEX list1 0 "e" 127.0.0.1:6379> LLEN list1 (integer) 5 127.0.0.1:6379> LPOP list1 "e" 127.0.0.1:6379> rpop list1 "a" 127.0.0.1:6379> LPOP list2 "1" 127.0.0.1:6379> rpop list2 "5" 127.0.0.1:6379> BLPOP list2 5 1) "list2" 2) "2" 127.0.0.1:6379> LRANGE list2 0 5 1) "3" 2) "4" 127.0.0.1:6379>
业务场景
list 类型数据扩展操作
微信朋友圈点赞,要求按照点赞顺序显示点赞好友信息
如果取消点赞,移除对应好友信息
演示如下:
[root@iZbp143t3oxhfc3ar7jey0Z ~]# redis-cli 127.0.0.1:6379> RPUSH 001 a b c d e f (integer) 6 127.0.0.1:6379> LRANGE 001 0 -1 1) "a" 2) "b" 3) "c" 4) "d" 5) "e" 6) "f" 127.0.0.1:6379> LREM 001 1 d (integer) 1 127.0.0.1:6379> LRANGE 001 0 -1 1) "a" 2) "b" 3) "c" 4) "e" 5) "f" 127.0.0.1:6379>
业务场景
twitter、新浪微博、腾讯微博中个人用户的关注列表需要按照用户的关注顺序进行展示,粉丝列表需要将最
近关注的粉丝列在前面
127.0.0.1:6379> lPUSH 001 o (integer) 8 127.0.0.1:6379> LRANGE 001 0 -1 1) "o" 2) "a" 3) "b" 4) "c" 5) "e" 6) "f" 7) "q" 8) "o" 127.0.0.1:6379>
list 类型应用场景
解决方案
- 依赖list的数据具有顺序的特征对信息进行管理
- 使用队列模型解决多路信息汇总合并的问题
- 使用栈模型解决最新消息的问题
list 类型数据操作注意事项
- list中保存的数据都是string类型的,数据总容量是有限的,最多2 32 - 1 个元素 (4294967295)。
- list具有索引的概念,但是操作数据时通常以队列的形式进行入队出队操作,或以栈的形式进行入栈出栈操作
- 获取全部数据操作结束索引设置为-1
- list可以对数据进行分页操作,通常第一页的信息来自于list,第2页及更多的信息通过数据库的形式加载
内容总结
以上是互联网集市为您收集整理的Redis的List类型全部内容,希望文章能够帮你解决Redis的List类型所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。