【问题标题】:Using memcached on a high end web application在高端 Web 应用程序上使用 memcached
【发布时间】:2013-07-10 22:16:39
【问题描述】:
我们正在使用 php/mysql 开发一个高端 Web 应用程序,并希望进一步探索 memcached 的使用。
从教程中我们了解到,我们需要写入 memcached 服务器以及写入 mysql 表。但是,如果我们正在加载带有分页的数据列表,我们会感到困惑如何使用它。在该页面中,我们可能需要根据不同的字段过滤数据。在这种情况下,我们是否可以在不使用 mysql 数据库的情况下依赖 memcached。如果没有,memcached 如何帮助扩展 php 应用程序。
【问题讨论】:
标签:
php
memcached
scalability
【解决方案1】:
首先,memcached 不会将你的数据持久化到磁盘上,因此依赖它来保存你的数据并不是一个好习惯
memcached 有助于扩展您的 php 应用程序,方法是通过提供查询结果来最小化数据库的负载,或者如果可以的话,通过存储整个 html 来更好地最小化 Web 服务器的负载(实际上,memcached 有很多很好的用例)
考虑以下流程:
1. 客户端浏览到您的页面
2. php 应用程序通过 key 从 memcached 请求数据(key 可以是 sql 查询,url ......这取决于)
3.如果memcached有数据就用它
4. 如果不是,php 应用程序应该从 mysql 查询数据
5. 检索到数据后将其保存在 memcached 中,以便下一次请求将在 2 中可用
要处理更新,请确保为存储在 memcached 中的每个项目定义 ttl(当然还有其他方法可以使缓存无效)