2011-08-17 2 views
1

그래서 매분마다 알 고를 기반으로 한 게시물의 현재 순위를 저장하려는 webapp가 있습니다. 업데이트 된 게시물을 렌더링하려면 db를 피하고 memcached에서 데이터 (예 : 게시물 제목, 작성자, 순위 등)를 가져오고 싶습니다.안전하게 memcached에 문자열과 정수의 파이썬 튜플을 저장하는 가장 좋은 방법은 무엇입니까?

하나의 아이디어는 직렬화 된 문자열을 memcached에서 python으로 다시 변환 한 다음 (pickle을 사용하여) 올바른 순서로 게시물을 표시하는 템플릿을 렌더링하는 데 사용되는 (저는 Django btw를 사용합니다). 그러나 사용자가 제출 한 데이터 (게시물 제목 등)에 바람직하지 않은 방식으로 구문 분석 될 수있는 문자가 포함되어있을 수 있으므로 안전하지 않을 수 있습니다.

1) 이러한 개체를 저장할 때 또는 다른 솔루션이있을 때 모든 데이터를 정리하는 것이 가장 좋은 솔루션입니까?

2) 데이터 정리가 옵션 인 경우 내 포스트 모델의 다양한 필드에서 어떤 문자를 제외해야합니까?

3) pickle.dump에 파일 쓰기가 필요합니까? 아니면 그냥 출력으로 문자열을받을 수 있습니까?

감사합니다.

저장에 필요한 사항의 예 :

((post.id, post.title, post.upvotes, post.author.username), (,,,)...) 

(이런 식으로 반복 말 25 게시물)

답변

0

가 왜 그냥 django.core.cache가 당신을 위해 알아서을? 나는 캐시 백엔드로 엮은 memcached를 한 장고 프로젝트에서이 일을 해요 :

$ python manage.py shell 
In [1]: from django.core.cache import cache 

In [2]: cache.set('woot', (3, 'blah', 590)) 

In [3]: cache.get('woot') 
Out[3]: (3, 'blah', 590) 

그것은 절인 할 수있는 모든 파이썬 객체에 대해 작동합니다.

또한 출력을 HTML과 모든 것으로 캐시하지 않는 이유는 무엇입니까? 장고는 좋은 per-view 캐싱과 템플릿 조각 캐싱을 제공합니다.

관련 문제