GAEを使う必ずみんな意識するのがDataStoreへのアクセスをいかに減らすか。 それすなわちキャッシュの使い方なり! と考えているわけですが、やることなんて以下の2点だと思います。 ・Model.put()するときにはmemcache.set()しろ ・Model.get()するまえにmemcache.get()しろ そこで、db.Modelを拡張しました。 まず、ModelAbsというdb.Modelを継承した中間のクラスを作って。 ========== class ModelAbs(db.Model): def put_with_cache(self,key_name): self.put() memcache.set(key=key_name,value=self) return self.key() @classmethod def get_with_cache(cls,key_names,**kwargs): if isinstance(key_names,list) == False: key_names = [str(key_names)] models = list() for key_name in key_names: ent = memcache.get(key=key_name) if ent == None: ent = cls.get_by_key_name(key_names=key_name) memcache.set(key=key_name,value=ent) models.append(ent) if len(key_names) > 1: return models else: return models[0] ========== そのModelAbsを継承したエンティティのクラスを作りました。 ========== class SPOTS(Mod