2011-09-08 24 views
4

현재 내 이해는 '모니터'명령은 전송 된 데이터베이스 번호와 관계없이 서버가 수신 한 모든 명령을 출력합니다.하나의 데이터베이스 만 모니터링 할 수 있습니까?

'정상적인'데이터를 보유하는 데 하나의 db를 사용하고 세션 데이터를 보유하기 위해 하나의 db를 사용하고 세션 db의 출력이 다른 db의 출력을 거의 읽을 수 없게 만들 때이 문제가 발생합니다.

하나의 데이터베이스에만 출력을 제한하는 방법이 있습니까?

답변

4

redis의 데이터베이스는 SQL의 데이터베이스와 전혀 다릅니다. 그들은 본질적으로 단지 미리 정의 된 키 접두어로 구성되어 있지 않습니다.

실제 데이터의 변경 내용 만 보려면 세션 데이터가 다른 프로세스로 이동하도록 별도의 인스턴스로 설정해야합니다.

이 작업을 수행하는 데 많은 오버 헤드가 없으며 (대부분의 시나리오에서는 성능이 실제로 향상 될 것입니다.) 여러 인스턴스를 사용하는 데는 다른 좋은 이유가 있습니다. 예를 들어, 실제 데이터를 실시간으로 디스크에 기록하고 백업하는 것이 좋지만 서버를 다시 시작한 후에 세션 데이터는 쓸모가 없으므로 디스크에 저장하지 않아도됩니다. 공유 인스턴스를 사용하면 모든 것을 저장하고 백업해야하므로 영구 데이터보다 훨씬 많은 세션 데이터가 변경되는 경우 성능이 좋지 않습니다.

8

어떨까요?

redis-cli monitor |grep '(db 1)' 

그냥 DB (1)이 로컬 호스트의 서버에 나를 위해 작동

+3

의 출력을 얻을 것입니다 그런 식으로 "레디 스-CLI 모니터를 | 그렙 '1 127'"데이터베이스 수를 일치, (1) 및 호스트 IP 주소의 첫 번째 부분 (127)을 포함합니다. –

관련 문제