at_yasu's blog

ロード的なことを

Cacheに関するメモ書き

当機
FreeBSD7.1-R

地味にはまったところ(ボケとも言う)

  • 以下のコードは駄目。
CACHE_NAME = 'test'
def get_test ():
  if CACHE_NAME in cache:
    return cache.get(CACHE_NAME)
  b = model.object.all()
  cache.set(CACHE_NAME, b)
  return b
  • 駄目な点
    • if CACHE_NAME in cache はKey値があるかどうかの話で、cacheが切れた時を考えちょらん
  • 修正点
CACHE_NAME = 'test'
def get_test ():
  if CACHE_NAME in cache:
    c = cache.get(CACHE_NAME)
    if c:
      return c
  b = model.object.all()
  cache.set(CACHE_NAME, b)
  return b
  • 疑問点(後で試すこと)
    • cache.get(CACHE_NAME, model.object.all()) だと、cacheが切れても内容は更新される?