Memcached¶
服务概述¶
Memcached 是一个高性能的分布式内存对象缓存系统,可以用于动态 Web 应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。
Memcached 主要的使用场景有以下两个:
- 需要共享某些 Key-Value 形式的小数据时。(因为新浪云的 Web 服务是分布式环境,所以使用全局变量方式等方式是不行的)。
- 缓存 MySQL 等后端存储的数据。快速进行数据响应,减轻后端存储的压力,同时,还可以为这些缓存数据指定过期时间。
Memcached 的实现决定了缓存的数据不是永久有效的,因此应用程序必须有针对 Memcached 失效时的向后端存取数据的重试方案。
您可以在应用管理面板的『存储与 CDN /Memcached 』中创建 Memcached,然后在应用中通过 API 读写 Memcached。
注解
Memcached 不适合存放大文件,目前仅允许存放小于 1MB 的数据。
API 使用手册¶
您可以使用 http://sendapatch.se/projects/pylibmc/ 作为 Memcached 服务的客户端。不同之处在于,创建 Client 时不用指定 servers 参数(如果指定了会被忽略)。
pylibmc 接口和 python-memcached 基本兼容,可以直接替换使用。 python-memcache 文档 。
对于现有使用 python-memcache 的代码,可以直接在 index.wsgi 中(任何 import memcache
语句执行之前)加入如下代码,即可不修改代码使用 pylibmc 了。
import pylibmc
import sys
sys.modules['memcache'] = pylibmc
使用示例¶
import pylibmc as memcache
mc = memcache.Client()
mc.set("foo", "bar")
value = mc.get("foo")
if not mc.get('key'):
mc.set("key", "1")
mc.incr("key")