redis list ( 链表 )

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zyddj123/article/details/82841823

list类型其实就是一个双向链表。通过push,pop操作从链表的头部或者尾部添加删除元素。
这使得list既可以用作栈,也可以用作队列

上进上出是 栈 ,特点:数据 先进后出

在这里插入图片描述


下进上出是 队列,特点:数据 先进先出

在这里插入图片描述


从时间复杂度的角度来看,Redis列表主要的特性就是支持时间常数的 插入和靠近头尾部元素的删除,即使是需要插入上百万的条目。 访问列表两端的元素是非常快的,但如果你试着访问一个非常大 的列表的中间元素仍然是十分慢的,因为那是一个时间复杂度为 O(N) 的操作。

你可以用Redis列表做许多有趣的事,例如你可以:

1.在社交网络中建立一个时间线模型,使用LPUSH去添加新的元素到用户时间线中,使用 LRANGE去检索一些最近插入的条目。
2.你可以同时使用LPUSH和LTRIM去创建一个永远不会超过指定元素数目的列表并同时记住最后的N个元素。
3.列表可以用来当作消息传递的基元(primitive),例如,众所周知的用来创建后台任务的Resque Ruby库。
4.你可以使用列表做更多事,这个数据类型支持许多命令,包括像BLPOP这样的阻塞命令。请查看所有可用的列表操作命令获取更多的信息。

猜你喜欢

转载自blog.csdn.net/zyddj123/article/details/82841823
今日推荐