import time
import redis
# 连接数据库
db = redis.Redis(host='192.168.3.2',port = 6379,decode_responses = False) # 连接redis数据库
print('连上了')
def phone_into(phone_name): # 将待抢购商品加入到redis队列中
db.lpush('phone_lists',phone_name)
print(f'{phone_name}已经插入进去')
print(db.lrange('phone_lists',0,-1)) # 展出当前redis队列中存在哪些商品
def qsj(man): # 实现抢购
if not db.llen('phone_lists'):
print('抢完了')
return
if db.sadd('qgdr',man): # 如果插入成功(插入成功会返回1,插入失败会返回0),说明该人员未抢购
print('当前剩余商品',db.lrange('phone_lists', 0, -1)) # 展示出当前redis队列中剩余哪些商品
print(f'{man}抢到了{db.rpop("phone_lists")}')
db.sadd('qgdr',man)
else: # 插入数据失败,说明已抢购,不能重复抢购
print(f'{man}已经抢过了')
if __name__ == '__main__':
db.flushdb()
for phone in ['phone1','phone2','phone3','phone4']:
phone_into(phone)
print('已插入完毕,开枪')
time.sleep(2)
for x in ['a','b','c','a','b','c','f','g','h']:
qsj(x)