python2 缓存的一个坑

2015-01-15 18:35:14 +08:00
 jamiesun
使用了beaker做缓存

@cache.cache('get_param',expire=3600)
def get_param(self,param_name):..


在某处清除缓存时,发现怎么都不生效
cache.invalidate(self.get_param,'get_param', param['param_name'])


最后醒悟,原来又是unicode & str的坑,现在临时方案是在清除缓存时,清两次,unicode和str参数各一次。

真是尴尬,设计api的时候是否对输入参数可以统一转换一下呢。


我自己做的缓存在生成key的时候也是一样的问题:

# def _mk_cache_sig(*args, **kwargs):
# src_data = repr(args) + repr(kwargs)
# m = hashlib.md5(src_data)
# sig = m.hexdigest()
# return sig
3364 次点击
所在节点    Python
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/162479

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX