2009-11-05 6 views
0

우리는 django를 사용하여 웹 기반 프로젝트를 개발하고 있습니다. 더 나은 성능을 내기 위해 db 연산을 캐시합니다. 하지만 우리가 배열 캐쉬가 필요한지 궁금합니다. 이 같은배열에 대해 캐시가 필요합니까?

코드 샘플 :

ABigArray = { 
    "1" : { 
    "name" : "xx", 
    "gender" "xxx", 
    ... 
    }, 
    "2" : { 
    ... 
    }, 
    ... 
    } 
class Items: 
    def __init__(self): 
     self.data = ABigArray 

    def get_item_by_id(self, id): 
     item = cache.get("item" + str(id)) # get the cached item if possible 
     if item: 
      return item 
     else: 
       item = self.data.get(str(id)) 
       cache.set("item" + str(id), item) 
       return item 

그래서 내가 하나 개의 아이템을 얻을하려고 할 때 우리가 정말 배열 ( ABigArray)가 메모리에로드됩니다 IMO 때문에, 이러한 캐시를 필요가 있는지 궁금하네요. 그래서 우리는 그런 조건에서 캐시를 사용할 필요가 없습니다. 아니면 내가 틀렸어?

내가 잘못하면 저를 시정하십시오.

감사합니다.

+0

몇 분 전에 물어 본 질문과 본질적으로 같은 질문이 아닙니까? – AnthonyWJones

+0

예. 그러나 다른 질문. 한 가지 질문을하고 싶었지만 그다지 적합하지 않은 것 같습니다. –

답변

3

너무 많은 정보를 잘라 냈지만 "배열"(실제로는 사전)이 항상 동일합니다. 모듈을 처음 가져올 때 만들어지는 단일 인스턴스가 있습니다. 모든 Items 개체에서 사용됩니다. 따라서 캐싱을 통해 얻을 수있는 것이 전혀 없습니다. 실제로 캐쉬에서 데이터를 가져 오는 불필요한 왕복 여행을 소개하므로 실망하게됩니다.

관련 문제