django缓存incr()或decr()操作后,缓存过期时间就变回全局默认的时间

全局默认是60s过期。

代码1

from django.core.cache import cache
import time

cache.set('num', 1,1)
time.sleep(2)
print cache.incr('num',1)

因为缓存过期incr操作抛出ValueError异常。(预料中的情况)

代码2

from django.core.cache import cache
import time
cache.set('num', 1,1)
print cache.incr('num',1)#比上面多的一行,
time.sleep(59)
print cache.incr('num',1)

输出

2
3

对[代码2]结果的疑问,我的理解是要么以set时设置的过期时间来重置过期时间,或者还是原来的过期时间不变,怎么会是用全局的过期时间来重置呢。
如果不是我代码问题,那我就只能get出来后手动+1,再set了。

阅读 3.9k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题