Redis List:打造高效消息队列的秘密武器【redis实战 一】
import redis
# 连接到Redis服务器
r = redis.Redis(host='localhost', port=6379, db=0)
# 生产者:往List中插入数据
def produce(list_name, data):
r.lpush(list_name, data)
# 消费者:从List中取出数据
def consume(list_name):
while True:
# 使用BLPOP阻塞地从List取出数据,超时时间为5秒
data = r.blpop(list_name, timeout=5)
if data:
# 处理数据
print(f"消费者取出数据: {data[1].decode()}")
else:
# 如果在指定时间内没有数据,循环结束
print("超时,循环结束")
break
# 测试代码
produce('mylist', 'data1')
produce('mylist', 'data2')
consume('mylist')
这段代码展示了如何使用Redis的List数据结构来实现一个简单的消息队列。生产者使用lpush
将数据推入List,消费者使用blpop
阻塞地从List取出数据。这里的List用作FIFO(First-In, First-Out)队列,保证了数据处理的顺序。
评论已关闭