2014-04-17 3 views
1

각 내 매퍼는 매우 큰 사전에 액세스해야합니다. 어딘가에 각 매퍼가 자신의 복사본을 여는 오버 헤드를 피할 수 있으며, 대신 모두가 하나의 전역 공유 객체를 가리 키도록 할 수 있습니까?DISCO의 매퍼간에 공유 전역 개체를 얻는 방법

DISCO 또는지도 제작 패러다임에 관련된 제안 사항이 도움이 될 것입니다.

+0

누군가가 사용 보았다 : 'my_dict하지 전역에서()의 경우 '글로벌 my_dict' :' 'my_dict = load_dict()를' 그러나 이것은 실제로 작동하는지 나는 잘 모르겠습니다 .. 테스트 할 필요가 그것 – rupen

+0

내가 생각하고 .. discodb 아마도 내가 무엇을 찾고있을 수도 있습니다. 그 설명서 - (a) "파이썬의 내장 명령 개체와 대조적으로, DiscoDB는 기가 바이트를 소비하지 않고 수천만의 키 - 값 쌍을 처리 할 수 ​​있습니다 기억." (b) "이점은 메모리가 매핑 된 후 디스크에서 키 코드를 인스턴스화하면 키 조회가 번개처럼 빨라진다는 것입니다." 의견이 있으십니까? – rupen

답변

0

사용 Redis 키 - 값 저장소

는 리눅스와 윈도우 컴파일 된 버전에 신속하게 설치 될 수도 있습니다.

python redis package 그러면 값을 쉽게 쓰고, 읽고 업데이트 할 수 있습니다.

해시 데이터 유형을 사용하면 가장 효과적 일 것이므로 소위 필드 (파이썬 사전 용어의 핵심)에 새 값을 추가/편집 할 수 있으며 매우 빠르고 직설적입니다.

이 솔루션은 독립적 인 프로세스에서도 작동합니다. 네트워크를 통해 Redis에서 데이터를 공유 할 수도 있으므로 매핑/축소 시나리오의 경우이 옵션을 선택하는 것이 좋습니다.

유일하게 값을 저장하고 복원 할 때주의해야 할 점은 값이 문자열 일 수 있다는 것입니다. 따라서 직렬화 및 비 직렬화해야합니다. json.dumps와 json.loads는 이것에 대해 매우 잘 작동합니다.