定制缓存后端(后台)

你能够轻易地定制缓存后端,只需要导入一个能够实例化以及返回缓存对象的函数。CACHE_TYPE 将是你自定义的函数名的字符串。 这个函数期望得到三个参数。

  • app
  • args
  • kwargs

你自定义的缓存对象必须是 werkzeug.contrib.cache.BaseCache 的子类。确保 threshold 是包含在kwargs参数中,因为它是所有BaseCache类通用的。

Redis的缓存实现的一个例子:

  1. #: the_app/custom.py
  2. class RedisCache(BaseCache):
  3. def __init__(self, servers, default_timeout=500):
  4. pass
  5. def redis(app, config, args, kwargs):
  6. args.append(app.config['REDIS_SERVERS'])
  7. return RedisCache(*args, **kwargs)

在这个例子中,CACHE_TYPE 可能就是 the_app.custom.redis

PylibMC缓存实现的一个例子:

  1. #: the_app/custom.py
  2. def pylibmccache(app, config, args, kwargs):
  3. return pylibmc.Client(servers=config['CACHE_MEMCACHED_SERVERS'],
  4. username=config['CACHE_MEMCACHED_USERNAME'],
  5. password=config['CACHE_MEMCACHED_PASSWORD'],
  6. binary=True)

在这个例子中,CACHE_TYPE 可能就是 the_app.custom.pylibmccache