Fastrq 介绍
基于redis的队列、双向队列、优先队列和堆栈,以及众多增强版本
-
支持定长。向满队列PUSH会失败,向容量不足的队列PUSH同样会失败。
-
支持可溢出。定长队列长度超过容量限制,元素会从另一端溢出。
-
PUSH/POP支持批量操作
Queue
- FIFO
Deque
- 支持从前端/后端PUSH/POP
Capped Queue/Deque
-
容量固定
-
向一个满的队列PUSH会失败
-
向一个容量不足的队列PUSH会失败
Overflow-able Capped Queue/Deque
-
队列长度超过容量自动溢出
-
单向队列从前端溢出
-
双向队列从PUSH端的另一端溢出
Priority Queue
- 分值越低,优先级越高
Capped Priority Queue
- 容量固定
Overflow-able Capped Priority Queue
-
队列长度超过容量自动溢出
-
溢出顺序按优先级从低到高
Stack
- LIFO
Capped Stack
- 容量固定
源码安装
python setup.py install
pip安装
pip install fastrq
使用
from fastrq.queue import Queue, CappedQueue from fastrq.deque import Deque from fastrq.stack import Stack from fastrq.priorityqueue import PriorityQueue # queue q = Queue("fastrq_queue") q.push(1) q.push([2, 3]) q.ttl(10) # set the lifetime in seconds q.range(0, -1) # got ['1', '2', '3'] q.range(0, 1) # got ['1', '2'] q.pop() q.pop(2) q.destruct() # destruct the queue cq = CappedQueue("fastrq_capped_queue", 3) cq.push(1) cq.push(2) cq.push([3, 4]) # got "err_qof" cq.push(3) cq.push(4) # got "err_qf" of_cq = OfCappedQueue("fastrq_of_capped_queue", 3) of_cq.push(1) of_cq.push([2, 3, 4]) # "1" would be pushed out # deque dq = Deque("fastrq_deque") dq.push_front([1, 2]) dq.push_back([3, 4]) dq.pop_front() dq.pop_back() # priority queue pq = PriorityQueue("fastrq_priority_queue") pq.push({'alibaba': 1}) pq.push({'google': 0, 'microsoft': 1}) pq.pop() pq.pop(2) # stack s = Stack("fastrq_stack") s.push([1,2,3]) s.pop()
Fastrq 官网
https://github.com/limen/fastrq
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。