DICESB는 Redis Compliant, 반응성, 확장 가능, 고도로 사용 가능한 통합 캐시입니다.
우리는 초기 디자인 파트너를 찾고 있으므로 DIEDB를 평가하려면 캘린더를 차단하십시오. 항상 채팅을 위해.
주의
DICESB는 개발 중이며 Redis 명령의 하위 집합을 지원합니다. 따라서 생산에 사용하지 마십시오. 그러나 열린 문제를 살펴보고 개발 속도를 높이는 데 도움이됩니다.
기여할 수있는 여러 저장소가 있습니다. 따라서 관심에 따라 하나를 선택하고 이동 중에 프로젝트에 대한 더 깊은 이해를 구축 할 수 있습니다.
DicedB는 Redis의 드롭 인 교체이지만 학습 곡선이 거의없고 스위칭은 코드 변경이 필요하지 않지만 여전히 두 가지 주요 측면에서 다릅니다.
GET.WATCH
, ZRANGE.WATCH
등과 같은 .WATCH
명령을 지원하여 클라이언트가 데이터 변경을 듣고 무언가가 변경 될 때마다 실시간으로 설정을 얻을 수 있도록합니다. . .WATCH
명령은 Leaderboard와 같은 진정한 실시간 응용 프로그램을 구축 할 때 매우 편리합니다.
Dicedb를 시작하는 가장 쉬운 방법은 다음 명령을 실행하여 Docker를 사용하는 것입니다.
docker run -p 7379:7379 dicedb/dicedb --enable-multithreading --enable-watch
위의 명령은 포트 7379
에서 로컬로 실행되는 gicedb 서버가 시작되며 DedicedB CLI 및 SDK를 사용하여 연결할 수 있습니다.
팁
DicedB는 Redis의 드롭 인 교체품이므로 Redis CLI 및 SDK를 사용하여 DicedB에 연결할 수도 있습니다.
지역 개발 또는 소스에서 달리기 위해 DicedB를 실행하려면 필요합니다.
git clone https://github.com/dicedb/dice
cd dice
go run main.go --enable-multithreading --enable-watch
멀티 스레딩 또는 .WATCH
기능으로 작업하지 않으면 두 깃발을 통과하는 것을 건너 뛸 수 있습니다.
sudo su
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b /bin v1.60.1
DICESB는 핫 릴로드 개발 환경을 제공하여 라이브 서버에서 코드 변경을 즉시 볼 수 있습니다. 이 기능은 Air에 의해 지원됩니다
시스템에 공기를 설치하려면 다음 옵션이 있습니다.
go install github.com/air-verse/air@latest
# binary will be installed at $(go env GOPATH)/bin/air
curl -sSfL https://raw.githubusercontent.com/air-verse/air/master/install.sh | sh -s -- -b $( go env GOPATH ) /bin
air
설치되면 명령 air -v
사용하여 설치를 확인할 수 있습니다.
로컬 개발을 위해 Live Dicedb 서버를 실행하려면 :
git clone https://github.com/dicedb/dice
cd dice
air
기본적으로 DICESB는 /etc/dice/config.toml
에서 구성 파일을 찾습니다. (Linux, Darwin 및 WSL)
# set up configuration file # (optional but recommended)
sudo mkdir -p /etc/dice
sudo chown root: $USER /etc/dice
sudo chmod 775 /etc/dice # or 777 if you are the only user
git clone https://github.com/DiceDB/dice.git
cd dice
go run main.go -init-config
메모
Windows를 사용하는 경우 Linux (WSL) 또는 WSL 2 용 Windows 서브 시스템을 사용하여 Linux와 같은 환경에서 위의 명령을 원활하게 실행하는 것이 좋습니다.
다른 위치를 사용하려면 -c flag
사용하여 사용자 정의 구성 파일 경로를 지정할 수 있습니다.
go run main.go -c /path/to/config.toml
구성 파일을 특정 위치로 출력하려면 -o flag
로 사용자 정의 출력 경로를 지정할 수 있습니다.
go run main.go -o /path/of/output/dir
Dicedb에 연결하는 가장 좋은 방법은 Dediced B CLI를 사용하는 것입니다. 다음 명령을 실행하여 설치할 수 있습니다.
sudo su
curl -sL https://raw.githubusercontent.com/DiceDB/dicedb-cli/refs/heads/master/install.sh | sh
DICESB는 Redis 프로토콜과 완전히 호환되므로 기존 Redis 클라이언트 또는 SDK를 사용하여 연결할 수 있습니다.
메모
.WATCH
기능은 다진 CLI를 통해서만 액세스 할 수 있습니다. 지원되지 않는 OS에서 작업중인 경우 (위의 스크립트에 따라) DICEDB/CLI 저장소에 언급 된 설치 지침을 항상 따라갈 수 있습니다.
단위 테스트 및 통합 테스트는 정확성을 보장하는 데 필수적이며 DICESB의 경우 두 가지 유형의 기능을 검증하기 위해 사용할 수 있습니다.
단위 테스트의 경우 TEST_FUNC
환경 변수를 사용하여 테스트 기능의 이름을 지정하고 make unittest-one
명령을 실행하여 개별 단위 테스트를 실행할 수 있습니다. 또는 make unittest
실행하면 모든 단위 테스트가 실행됩니다.
TEST_FUNC= < name of the test function > make unittest-one
TEST_FUNC=TestByteList make unittest-one
make unittest
반면에 통합 테스트에는 DIEDB 서버를 시작하고 예상 종료 상태 및 출력을 확인하기위한 일련의 명령을 실행하는 것이 포함됩니다. 단일 통합 테스트를 실행하려면 TEST_FUNC
환경 변수를 테스트 기능의 이름으로 설정하고 실행 make test-one
설정할 수 있습니다. 실행 make test
모든 통합 테스트를 실행합니다.
TEST_FUNC= < name of the test function > make test-one
TEST_FUNC=TestSet make test-one
make test
DICESB에서 더 많은 테스트를 추가하려면 작업이 진행 중이며 곧 테스트 Redis Suite를이 코드베이스에 포트하여 완전한 호환성을 보장 할 것입니다.
make run_benchmark
DICEDB를 구축하고 기여하기 시작하려면이 저장소에서 생성 된 문제를 참조하십시오.
우리는 Astro Framework를 사용하여 dicedb.io 웹 사이트와 Starlight에 전원을 공급하여 문서에 전원을 공급합니다. nodejs를 설치 한 후에는 다음 명령을 발사하여 로컬 버전의 dicedb.io를 실행하십시오.
cd docs
npm install
npm run dev
서버가 시작되면 좋아하는 브라우저에서 http : // localhost : 4321/를 방문하십시오. 이는 호수 재 장전으로 실행되므로 웹 사이트에서 변경 사항이 변경되며 문서는 브라우저에서 즉시 볼 수 있습니다.
docs/src/content/docs/commands
모든 명령이 문서화되는 곳입니다docs/src/content/docs/tutorials
모든 자습서가 문서화되는 곳입니다 DedicedB는 구현과 함께 제공되는 미세한 누가를 이해하기 위해 DB를 처음부터 처음부터 구축한다는 아이디어로 Golang에서 Redis의 재 구현으로 시작했습니다. DICESB는 다른 데이터베이스가 아닙니다. 실시간 시대를위한 플랫폼으로 제작 된 플랫폼입니다. 현대적인 응용 분야에서 실시간 시스템이 점점 더 널리 퍼짐에 따라 DedicedB의 초 최적화 된 아키텍처는 차세대 사용자 경험을 제공 할 수 있습니다.
코드 기여 가이드 라인은 기고/readme.md에 게시됩니다. 변경을 시작하기 전에 읽으십시오. 이를 통해 우리는 일관된 표준 코딩 관행과 개발자 경험을 가질 수 있습니다.
기고자는 빠른 협력을 위해 불화 서버에 가입 할 수 있습니다.
$ sudo netstat -atlpn | grep :7379
$ sudo kill -9 <process_id>