크기가 매우 큰 사전을 가지고 있는데 알고리즘에 자주 문의해야합니다. 빠른 결과를 얻으려면 가능한 한 메모리에 넣고 싶습니다. 다행스럽게도 500GB RAM이 있기 때문입니다.파이썬으로 메모리에로드 된 매우 큰 사전을 유지하는 방법은 무엇입니까?
그러나 내 주요 문제는 메모리에 한 번만로드 한 다음 다른 프로세스가 새 프로세스를 만들거나 코드를 반복 할 때마다 다시로드하지 않고 동일한 사전을 쿼리하도록하고 싶다는 것입니다.
스크립트 1 :
# Load dictionary in memory
def load(data_dir):
dictionary = load_from_dir(data_dir) ...
스크립트 2 :
# Connect to loaded dictionary (already put in memory by script 1)
def use_dictionary(my_query):
query_loaded_dictionary(my_query)
이를 달성하는 가장 좋은 방법은 무엇입니까
그래서, 나는 이런 식으로 뭔가를 원하십니까? 나는 나머지 API를 고려해 봤지만, REST 요청으로 넘어 가면 사전을 메모리에 넣음으로써 얻은 모든 속도가 저하 될지 궁금하다.
제안 사항?
아마도 도움이 될만한 redis와 같은 것을 사용하십시오. –
네, redis도 좋은 생각입니다. 파이썬에서이 작업을 수행 할 수있는 방법이 있는지 궁금합니다. 이전에 mongodb를 시도했지만 최신 wiredtiger 버전의 mongodb에는 메모리의 모든 데이터를 미리로드 할 수있는 옵션이 없습니다. 문제는 루트 암호가 없어서 너무 많은 소프트웨어를 설치하고 싶지 않다는 것입니다. 하지만 내가 다시 시도하자. –
NOSQL 데이터베이스를 다시 만들려고하십니까? 왜 기존에 의존하지 않습니까? –