2016-08-28 4 views
1

내 자신의 키 - 값 쌍 중 일부를 저장하기 위해 redis를 사용하려고하지만 일부 모듈은 이미 그것을 사용합니다. redis는 세션 데이터에 대한 세션 저장소와 소켓 io에 대한 redis 어댑터를 나타냅니다. 그래서 내 질문은 간단합니다, 어떻게 만들거나 열쇠 충돌없이 내 자신의 키를 저장하는 데이터베이스/네임 스페이스를 지정할 수 있습니까? node-redis 드라이버를 사용하고 있습니다.이름 충돌을 피하기 위해 이름 공간 키를 재 다이얼하는 방법은 무엇입니까?

답변

4

용액 1 : 상이한 레디 스 인스턴스

가장 엄격하게 분리 다른 모듈 스토어 데이터, 즉 개별 레디 스 프로세스 개별 레디 스 인스턴스에서 각 모듈의 데이터를 저장한다.

해결 방법 2 :

레디 스 인스턴스가 여러 데이터베이스를 가질 수 있습니다, 그리고 당신은 설정 파일에 데이터베이스의 수를 구성 할 수있는 단일 레디 스 인스턴스의 다른 데이터베이스에서 다른 모듈의 데이터 저장. 기본적으로 16 개의 데이터베이스가 있습니다.

이 데이터베이스의 이름은 0부터 시작하는 숫자 색인입니다. select command을 사용하면 ith 데이터베이스를 사용할 수 있습니다. 선택한 후 모든 후속 명령은 데이터베이스에서 작동합니다.

각 모듈에 대해 독립적 인 데이터베이스를 할당하면 이름 충돌을 피할 수 있습니다.

해결 방법 3 : 모든 데이터가있는 경우 키 접두사로

을 네임 스페이스를 만들기는 하나의 데이터베이스에 저장, 당신은 여전히 ​​암시 키 접두사네임 스페이스을 만들 수 있습니다. 각 모듈에 대해이 모듈의 모든 데이터는 동일한 키 패턴, 즉 ModuleName:KeyName을 가져야합니다. 즉,이 모듈의 각 키는 동일한 접두사 : ModuleName을가집니다.

각 모듈마다 다른 이름이 있으므로이 모듈들 간에는 이름 충돌이 발생하지 않습니다.