一、List
简单描述:
List类型是一个链表类型结构的集合,其主要功能有push、pop、获取元素等。更详细的说,List类型是一个双端链表,我们可以通过相关的操作进行集合的头部或者尾部添加和删除元素,List的设计非常简单精巧,即可以作为栈,又可以作为队列,满足绝大多数的需求。
高级功能:
备注:
上面只是给出一个例子,详细的请看: 《菜鸟教程-Redis 列表(List)》
二、应用场景
- 对数据量大的集合数据删减
列表数据显示、关注列表、粉丝列表、留言列表(每篇博文的评论也可以存入一个单独的list中)等...分页(LRANGE指令)、热点新闻(Top 10)等
- 任务队列
可以用来实现一个任务队列,而且可以确保先后顺序,而不用通过ORDER BY来排序实现(例如:MySQL)
什么是任务队列?
Task是web开发中非常经典的一个场景,我们时常会需要用到一些不需要在当前请求下立刻执行的任务,或者是需要定时去做的一些任务,这些需要一个用来存放任务的队列、以及用来执行任务的工具、以及可能需要定时执行的任务调度器。
任务队列和任务调度一般来说是互相独立的两套系统,任务队列主要是依次执行一系列异步的任务,任务调度是和时间相关的,可能执行的是任务抑或者是系统命令。
任务队列经常使用下面的这条命令:
物流队列例子:
当用户完成付款后,京东会生成一个物流队列:
- 商家发货
- 快递小哥取货
- 广州--->茂名
- 茂名---->高州
- 确定收货
- 商品评价