1
我使用Python 2.6.5和Django的1.3的Python Memcached的:缓存对象
让我说,我有这样的模型:
class Company(models.Model):
name = models.CharField(...)
type = models.SmallIntegerField(...)
....
def check_condition(self, someParam):
do someThing...
return someThing
这是一个使用频繁的模式,所以我一直基本数据INA字典和缓存此字典
aComp = Company.objects.get(pk=somevalue)
compDict = {'name':aComp.name, 'type': aComp.type...}
cache.set('companyInfo', compDict)
一切都很好,但在某些情况下,我需要调用的方法Company
但因为我缓存公司信息,我不知道是否这是很好的缓存对象或不...喜欢
compDict = {'name':aComp.name, 'type': aComp.type, 'obj':aComp}
而且使用它
myComp = cache.get('companyInfo')
compInst = myComp['obj']
compInst.check_condition(aParam)
,我不知道它是多么有效的缓存对象,并用于缓存的对象实例方法调用那样?
如果你缓存整个对象,有没有点到字典都没有:只有通过'aComp'到'cache.set'。 – 2012-01-11 11:24:31
@DanielRoseman - ACOMP倒是Django的QS对象(没有命中DB但即查询集尚未进行评估)。我尝试设置OBJ,与cache.get(“OBJ”)导致相同数量的查询 - 因为它得到了评估模板即obj.attr – 2016-04-25 12:47:22
我正在寻找一种方式来缓存昂贵的查询 - 用最小的开发开销(巨大代码库)。 – 2016-04-25 12:49:25