上一篇:python ---- 实现队列
????????承上文,在python中使用列表来实现队列这种数据结构,为了保留数据,可以使用redis来实现。
原因:
? ? ? ? redis是nosql,性能优越,在web开发中很多热数据都需要用到;本身数据类型也支持列表。
代码:
import redis
class TestQueue:
def __init__(self):
self.r = redis.Redis(decode_responses=True)
self.key = "queue"
# 入队
def push(self, item):
# 在尾部加入数据
self.r.rpush(self.key, item)
# 出队
def pop(self):
# 在头部移除数据
result = self.r.lpop(self.key)
# 返回队列数据列表
def get_all(self):
return self.r.lrange(self.key, 0, -1)
# 调用
my_queue = TestQueue()
for i in range(10):
my_queue.push(i) # 入队0-9十条数据
result = my_queue.get_all()
print(result) # 打印队列中的全部数据 [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
for i in range(10):
msg = my_queue.pop()
print(msg) # 依次出队 0 1 2 3 4 5 6 7 8 9
结论:
队列在web开发中,配合异步出队,可以有效的缓解高并发下的资源竞争问题。
|