DICEDBは、最新のハードウェアに最適化されたRedisに準拠し、反応性があり、スケーラブルで、高度に利用可能な、統一されたキャッシュです。
初期のデザインパートナーを探しているので、DICEDBを評価したい場合は、カレンダーをブロックしてください。常にチャットに出かけます。
注意
DICEDBは開発中であり、Redisコマンドのサブセットをサポートしています。したがって、生産で使用しないでください。ただし、オープンな問題を確認し、開発のスピードアップに貢献してください。
貢献できる複数のリポジトリがあります。したがって、あなたの興味に従って、あなたはそれを選んで、外出先でプロジェクトをより深く理解することができます。
dicedBはRedisのドロップイン交換ですが、これは学習曲線と切り替えにはコードの変更がほとんど必要ありませんが、2つの重要な側面では依然として異なり、
GET.WATCH
、 ZRANGE.WATCH
などのような.WATCH
コマンドをサポートします。これにより、クライアントはデータの変更を聞き、何かが変更されるたびにリアルタイムに設定できます。 .WATCH
コマンドは、リーダーボードのような真にリアルタイムのアプリケーションを構築することに関して、かなり便利です。
DICEDBを始める最も簡単な方法は、次のコマンドを実行してDockerを使用することです。
docker run -p 7379:7379 dicedb/dicedb --enable-multithreading --enable-watch
上記のコマンドは、ポート7379
でローカルで実行されているDICEDBサーバーを起動し、DICEDB 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
機能を使用していない場合は、2つのフラグをスキップできます。
sudo su
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b /bin v1.60.1
DICEDBは、ホットレロード開発環境を提供します。これにより、ライブサーバーでコードの変更を即座に表示できます。この機能は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
使用してインストールを確認できます
ローカル開発のためにライブデスケブサーバーを実行するには:
git clone https://github.com/dicedb/dice
cd dice
air
デフォルトでは、DICEDBは/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に接続する最良の方法はDicedb CLIを使用することであり、次のコマンドを実行してインストールできます
sudo su
curl -sL https://raw.githubusercontent.com/DiceDB/dicedb-cli/refs/heads/master/install.sh | sh
dicedBはRedisプロトコルと完全に互換性があり、既存のRedisクライアントまたはSDKを使用して接続できます。
注記
.WATCH
機能は、dicedb CLIからのみアクセスできます。サポートされていないOS(上記のスクリプトに従って)で作業している場合は、dicedb/CLIリポジトリに記載されているインストール手順に従うことができます。
ユニットテストと統合テストは正確性を確保するために不可欠であり、DICEDBの場合、両方のタイプのテストがその機能を検証するために利用可能です。
ユニットテストの場合、 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
一方、統合テストには、dicedbサーバーを起動し、一連のコマンドを実行して、予想される最終状態と出力を確認することが含まれます。単一の統合テストを実行するには、 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
DICEDBでさらにテストを追加する作業が進行中です。完全な互換性を確保するために、このコードベースにテストRedisスイートをすぐに移植します。
make run_benchmark
DicedBの構築と貢献を始めるには、このリポジトリで作成された問題を参照してください。
Astro Frameworkを使用して、Dicedb.ioのWebサイトとStarlightにパワーを供給してドキュメントに駆動します。 nodejsをインストールしたら、次のコマンドを発射して、dicedb.ioのローカルバージョンを実行します。
cd docs
npm install
npm run dev
サーバーが起動したら、お気に入りのブラウザでhttp:// localhost:4321/にアクセスします。これはホットなリロードで実行されます。これは、Webサイトで変更した変更を意味し、ドキュメントはブラウザで即座に表示できます。
docs/src/content/docs/commands
すべてのコマンドが文書化される場所ですdocs/src/content/docs/tutorials
は、すべてのチュートリアルが文書化されている場所ですDICEDBは、GolangのRedisの再実装として始まり、その実装に伴うマイクロナンスを理解するためにDBをゼロから構築するという考えがありました。 dicedbは単なる別のデータベースではありません。これは、リアルタイムの時代に向けて構築されたプラットフォームです。リアルタイムシステムが最新のアプリケーションでますます一般的になるにつれて、DICEDBの過可視アーキテクチャは、次世代のユーザーエクスペリエンスを促進するために位置付けられています。
コード貢献ガイドラインは、Contributing/readme.mdで公開されています。変更を開始する前に読んでください。これにより、コーディングプラクティスと開発者エクスペリエンスの一貫した基準が得られます。
貢献者は、迅速なコラボレーションのためにDiscordサーバーに参加できます。
$ sudo netstat -atlpn | grep :7379
$ sudo kill -9 <process_id>