Python web全栈开发_Django_billshop 商城项目_pipeline操作Redis数据库、生产者消费者设计模式、celery 介绍、安装和处理

1. pipeline操作Redis数据库

Redis的 C - S 架构:
• 基于客户端-服务端模型以及请求/响应协议的TCP服务。
• 客户端向服务端发送一个查询请求,并监听Socket返回。
• 通常是以阻塞模式,等待服务端响应。
• 服务端处理命令,并将结果返回给客户端。
存在的问题:
• 如果Redis服务端需要同时处理多个请求,加上网络延迟,那么服务端利用率不高,效率降低。
解决的办法:
• 管道pipeline

在这里插入图片描述
pipeline的介绍
管道pipeline
• 可以一次性发送多条命令并在执行完后一次性将结果返回。
• pipeline通过减少客户端与Redis的通信次数来实现降低往返延时时间。
实现的原理
• 实现的原理是队列。
• Client可以将三个命令放到一个tcp报文一起发送。
• Server则可以将三条命令的处理结果放到一个tcp报文返回。
• 队列是先进先出,这样就保证数据的顺序性。
在这里插入图片描述
pipeline操作Redis数据库
实现步骤
1. 创建Redis管道
2. 将Redis请求添加到队列
3. 执行请求

@@@ 代码自行实现,不展示。

2. 生产者消费者设计模式

问题:
• 我们的代码是自上而下同步执行的。
• 发送短信是耗时的操作。如果短信被阻塞住,用户响应将会延迟。
• 响应延迟会造成用户界面的倒计时延迟。
在这里插入图片描述
解决:
• 异步发送短信
• 发送短信和响应分开执行,将发送短信从主业务中解耦出来。

生产者消费者设计模式介绍
• 为了将发送短信从主业务中解耦出来,我们引入生产者消费者设计模式。
• 它是最常用的解耦方式之一,寻找中间人(broker)搭桥,保证两个业务没有直接关联。
在这里插入图片描述
总结:
• 生产者生成消息,缓存到消息队列中,消费者读取消息队列中的消息并执行。
• 由网站生成发送短信消息,缓存到消息队列中,消费者读取消息队列中的发送短信消息并执行。

3. celery 介绍、安装和处理

思考:
• 消费者

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值