TL;DR
- Dragonfly와 LibreDB Studio를 같은 Docker 네트워크에서 실행하면 별도 Dragonfly 설정이나 코드 변경 없이 Redis 호환 방식으로 연결되어 데이터베이스 관리가 가능함.
- LibreDB Studio는 브라우저에서 실행되는 MIT 라이선스 오픈소스 데이터베이스 IDE로 쿼리 편집기, 키 브라우저, 모니터링 대시보드를 제공함.
- LibreDB Studio는 데스크톱 애플리케이션 대신 컨테이너, Helm 차트, npm 패키지로 제공되어 Dragonfly 인스턴스 옆에서 실행되는 구조임.
- 연결 유형을 Redis로 선택하고 Dragonfly 컨테이너 이름과 포트 6379를 입력하면 키 탐색, 명령 실행, 모니터링이 가능함.
- Redis 드라이버 기반 연결로 인해 버전, 연결 제한, 사용자, 세션 명령·플래그 정보 일부는 Dragonfly의
INFO와CLIENT LIST가 제공하는 범위로 제한됨.
소개
- LibreDB Studio는 브라우저에서 실행되는 MIT 라이선스 오픈소스 데이터베이스 IDE임.
- 쿼리 편집기, 키 브라우저, 모니터링 대시보드를 통해 Redis를 포함한 다양한 데이터베이스 엔진을 지원함.
- 데스크톱 다운로드 대신 컨테이너, Helm 차트, npm 패키지로 제공되어 노트북이 아니라 Dragonfly 인스턴스와 나란히 실행되는 방식임.
- Dragonfly는 Redis 와이어 프로토콜을 사용하므로 LibreDB Studio는
ioredis드라이버를 통해 Redis와 동일한 방식으로 연결됨. - Dragonfly 전용 설정, 플래그, 코드 변경은 필요하지 않음.
TL;DR
- Dragonfly와 LibreDB Studio를 같은 Docker 네트워크에서 실행하고, Dragonfly 컨테이너 이름과 포트를 가리키는 Redis 유형 연결을 추가하면 Redis에서와 같은 방식으로 쿼리 편집기, 키 브라우저, 모니터링 대시보드를 사용할 수 있음.
- 실행 구성은
libredb-studioDocker 네트워크 생성,dragonfly컨테이너 실행, 포트 3000으로 LibreDB Studio 컨테이너 실행 순서임.
Dragonfly에서 LibreDB Studio 실행
- 이 구성에서는 Dragonfly와 LibreDB Studio가 모두 컨테이너로 실행되므로 두 컨테이너가 공통으로 사용하는 Docker 네트워크가 필요함.
- Docker 기본 네트워크에서는 컨테이너가 이름으로 다른 컨테이너에 접근할 수 없음.
1. 네트워크 생성
libredb-studio라는 Docker 네트워크를 생성함.
2. Dragonfly 시작
dragonfly라는 이름으로 Dragonfly 컨테이너를libredb-studio네트워크에 연결해 실행함.- 컨테이너 실행 시
--ulimit memlock=-1설정과docker.dragonflydb.io/dragonflydb/dragonfly:latest이미지를 사용함.
3. LibreDB Studio 시작
- LibreDB Studio 컨테이너를
libredb-studio네트워크에 연결하고 호스트 포트 3000을 컨테이너 포트 3000에 매핑해 실행함. - 사용하는 이미지는
ghcr.io/libredb/libredb-studio:latest임. - Helm 차트와 npm 패키지인
npx @libredb/studio도 제공되며, 자세한 내용은 LibreDB Studio 저장소에서 확인 가능함.
4. 연결 생성
- 브라우저에서 LibreDB Studio를 열고 로그인함.
+버튼을 눌러 새 연결을 추가함.- 연결 유형으로 Redis를 선택함.
- Dragonfly 인스턴스의 호스트에
dragonfly를 입력함. 이는 앞서 지정한 컨테이너 이름임. - 포트에 6379를 입력함.
Test Connection으로 연결을 확인한 뒤Establish Connection을 선택함.- 연결은 사이드바에
redis유형으로 표시되며, 이후 브라우저에서 키 탐색, 명령 실행, 모니터링 데이터 확인이 가능함.
수행 가능한 작업
- 키 탐색: 키 브라우저가 첫 번째
:앞의 모든 내용을 접두사로 보고 키를 그룹화함. 이에 따라user:1과user:2가 하나의user:*항목 아래에 표시되며, Redis에서 사용하는 것과 같은 그룹화 방식임. - 명령 실행: 쿼리 편집기에서 일반 Redis 명령인
HGETALL user:1,SCAN 0 MATCH user:* COUNT 50등을 입력하거나 JSON 명령 객체를 사용할 수 있음. - Redis 제공자가 제공하는 것과 동일한 오른쪽 클릭
Generate Command치트시트도 제공됨. - 서버 모니터링: 모니터링 대시보드가
INFO,SLOWLOG GET,CLIENT LIST를 읽어 개요, 성능 지표, 느린 쿼리 로그, 활성 세션 표를 제공함.
제한 사항
- LibreDB Studio의 Dragonfly 지원은 Dragonfly 전용 드라이버가 아니라 Redis 드라이버를 통해 제공됨.
- 이에 따라 일부 패널은 전체 정보가 아니라 Dragonfly의
INFO와CLIENT LIST가 실제로 게시하는 정보를 표시함. - 개요의 버전 필드는 Dragonfly 자체 버전이 아니라
INFO가redis_version으로 보고하는 Redis 호환성 수준을 표시함. - Dragonfly 자체 버전은 같은
INFO응답에서dragonfly_version이라는 별도 필드로 게시됨. - 연결 카드에는 숫자 대신
no limit published가 표시됨. - Dragonfly의
INFO가 드라이버가 연결 제한을 읽는 데 사용하는 것과 같은 필드 이름으로 값을 게시하지 않기 때문임. - 활성 세션 표의 모든 행에서 사용자 열이
default로 표시됨. - Dragonfly의
CLIENT LIST가 연결 인증에 사용된 ACL 사용자와 관계없이 세션별 사용자 필드를 게시하지 않기 때문임. - 활성 세션 표의 모든 행에서 쿼리 열이
idle, 상태 열이N으로 표시됨. - Dragonfly의
CLIENT LIST가 세션별 명령 또는 플래그 필드도 게시하지 않기 때문임. - 이러한 제한은 쿼리 편집기, 키 브라우저, 명령 실행에는 영향을 주지 않음.
docker.dragonflydb.io/dragonflydb/dragonfly:latest를 대상으로 한 테스트에서 해당 기능들은 Redis와 동일하게 응답함.
유용한 자료
- LibreDB Studio 홈페이지 및 GitHub 저장소.
- 드라이버:
ioredis.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요