Python网络编程 8 缓存与消息队列

本文探讨了在网络编程中,如何利用缓存(如Memcached)和消息队列来优化服务性能。Memcached提供了一个快速的键值存储系统,通过LRU策略管理内存,适用于多语言环境。消息队列则用于异步处理,如发送确认邮件,支持管道、发布者-订阅者和请求-响应等模式,实现任务分发和系统间的通信。
摘要由CSDN通过智能技术生成

前面已经介绍了套接字API以及在Python中使用的基础IP网络操作来构建通信信道的方式。本章研究服务负载较重时常用的两项基本技术:缓存与消息队列。这两项技术有如下一些共同特点:

  • 都是非常强大的工具,因而广为流行。使用Memcached或一个消息队列,不是为了实现一个有趣的协议来与其他工具进行交互,二是为了编写优雅的服务来解决特定的问题。
  • 这两项技术解决的问题通常是机构内部特有的问题。我们通常无法仅从外界就得知一个特定的网站或网络服务使用了哪种缓存、哪种消息队列以及哪种负载分配工具。
  • 尽管HTTP和SMTP这样的工具都是针对一个特定的负载设计的(HTTP针对超文本文档,SMTP针对电子邮件消息),但是缓存和消息队列是无需了解它们所要传输的数据的。
  • 我们可以将缓存和消息队列视为提供了两个已经造好的轮子,以避免重复的劳动。

Memcached意为“内存缓存守护进程“(memory cache daemon).Memcached将安装它的服务器上的空闲RAM与一个很大的近期最少使用(LRU)的缓存结合使用。我们可以从Memcached的实现中学习到一个重要的现代网络概念--分区(Sharding).使用Memcached的实际步骤是相当简单的。
  • 在每台拥有空闲内存的服务器上都运行一个Memcached守护进程。
  • 将所有Memcached守护进程的IP地址与端口号列出,并将该列表发送给所有将要使用Memcached的客户端。
  • 客户端程序现在可以访问一个组织级的速度极快的键值缓存,它就像是所有服务器之间共享的一个巨大的Python字典。该缓存是基于LRU的。如果有些项长时间没有被访问的话,就会将这些项丢弃࿰
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值