Heroku黑客指南(十)

memcached缓存

(一)为什么要缓存

用户在访问网站时,取决于你应用的设计,通常会触发至少一次数据库查询。对大部分web应用来说,查询数据库是请求处理过程中最慢的部分。虽然数据库可以非常快,但是复杂的数据查询可能很慢,并且消耗了大量的资源。这导致用户访问网站缓慢。

幸运的是,大部分数据库查询其实不需要发生。假如你花时间分析下应用代码,会发现有多少数据库查询其实返回的是静态数据,或接近于静态的数据?是否可以通过简单的K/V存储系统来避免复杂的关系型数据库查询?这就是缓存的意义所在。

(二)使用memcached

memcached 是非常流行、稳定、高性能的内存型缓存系统。它允许你快速的存取K/V型数据,不用访问磁盘。

对大部分web应用来说,使用memcached毫无疑问可以加快应用访问性能。你可以将数据库返回的结果存储在memcached里,下次读取时就从缓存中获取,而无需查询数据库。而且,几乎所有的web框架都集成了对memcached的支持,这让应用代码集成缓存逻辑变得更容易。

(三)Heroku的memcached

在heroku上使用memcached非常简单,有多个memcached插件可用,你可以通过命令行实时增加、删除、升级它们。

当前有三种可用的memcached插件:

Memcache  – 最老的缓存服务,稍贵
Memcachier  – 较新的服务,便宜一些
IronCache  – 另一个缓存服务,当前仍beta

这些插件都工作良好,简单使用。不管是何种形式的memcached插件,你都要毫无疑虑的使用它们来加速应用访问,提升性能。通用的原则是:缓存的数据越多,性能越好。

此条目发表在Common分类目录,贴了, 标签。将固定链接加入收藏夹。