2013-09-26 8 views
3

에 저장을위한 객체 직렬화 파이썬과 카산드라를 사용하여. 각 레코드를 serialize하고 redis 문자열을 유지하거나 각 레코드에 대한 사전을 만들고 사전 목록으로 redis에 유지합니다.파이썬 - 레디 스 : 모범 사례, 내가 레디 스에서 캐시 데이터베이스 레코드의 큰 세트를 직렬화 고려하고 레디 스

어느 쪽이 더 빠릅니까? 각 레코드 피클? 또는 각 레코드에 대한 사전을 만들 수 있습니까?

둘째 : DIC 년대의 목록으로 데이터베이스에서 가져 오기 위해 어떤 방법이 있습니까? (모델 obj의 목록 대신)

답변

2

사전을 문자열로 직렬화하고 Redis LIST (제안하는 것처럼 들리는)에 저장하는 대신 각 dict을 Redis HASH로 저장할 수 있습니다. 당신의 dicts가 상대적으로 간단한 키/값 쌍인 경우 이것은 잘 작동 할 것입니다. 각각의 해시를 생성 한 후에는 해시 키를 목록에 추가하여 해시 키 색인을 제공 할 수 있습니다. 이 방식의 이점은 필요한 직렬화의 양을 줄이거 나 줄일 수 있으며 다른 응용 프로그램이나 다른 언어에서 데이터 세트를 사용하는 것을 더 쉽게 만들 수 있습니다.

은 물론 취할 수있는 그 당신이 다루고있는 어떤 종류의 데이터에 관련된 요인의 많은 어떻게 당신이 그것을 사용할 계획에 따라 달라집니다 다른 많은 방법이있다.

직렬화와 함께 갈 경우 최소한 JSON, BSON, YAML, 또는 많은 다른 사람처럼보다 언어 무신론자 직렬화 형식을 고려하는 것이 좋습니다.