DicedB adalah cache terpadu yang sesuai dengan Redis, reaktif, dapat diskalakan, sangat tersedia, dan disatukan dioptimalkan untuk perangkat keras modern.
Kami mencari mitra desain awal, jadi, jika Anda ingin mengevaluasi DicedB, blokir kalender kami. selalu siap untuk mengobrol.
Peringatan
DicedB sedang dalam pengembangan dan mendukung sebagian dari perintah Redis. Jadi, tolong jangan menggunakannya dalam produksi. Tapi, jangan ragu untuk menjalani masalah terbuka dan berkontribusi untuk membantu kami mempercepat pengembangan.
Kami memiliki beberapa repositori di mana Anda dapat berkontribusi. Jadi, sesuai minat Anda, Anda dapat memilih satu dan membangun pemahaman yang lebih dalam tentang proyek saat bepergian.
Meskipun DicedB adalah penggantian drop-in redis, yang berarti hampir tidak ada kurva pembelajaran dan switching tidak memerlukan perubahan kode, itu masih berbeda dalam dua aspek utama dan mereka
.WATCH
seperti GET.WATCH
, ZRANGE.WATCH
, dll. Yang memungkinkan klien mendengarkan perubahan data dan mendapatkan hasil yang ditetapkan secara real-time setiap kali sesuatu berubah. Perintah .WATCH
sangat berguna dalam hal membangun aplikasi yang benar-benar real-time seperti leaderboard.
Cara termudah untuk memulai dengan DicedB adalah menggunakan Docker dengan menjalankan perintah berikut.
docker run -p 7379:7379 dicedb/dicedb --enable-multithreading --enable-watch
Perintah di atas akan memulai server DicedB yang berjalan secara lokal di port 7379
dan Anda dapat menghubungkannya menggunakan DicedB CLI dan SDK.
Tip
Karena DicedB adalah penggantian drop-in untuk REDIS, Anda juga dapat menggunakan Redis CLI dan SDK untuk terhubung ke DicedB.
Untuk menjalankan DicedB untuk pengembangan lokal atau berjalan dari sumber, Anda akan membutuhkan
git clone https://github.com/dicedb/dice
cd dice
go run main.go --enable-multithreading --enable-watch
Anda dapat melewatkan melewati kedua bendera jika Anda tidak bekerja dengan fitur multi-threading atau .WATCH
.
sudo su
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b /bin v1.60.1
DicedB menyediakan lingkungan pengembangan yang memuat panas, yang memungkinkan Anda untuk secara instan melihat perubahan kode Anda di server langsung. Fungsionalitas ini didukung oleh udara
Untuk menginstal udara di sistem Anda, Anda memiliki opsi berikut.
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
Setelah air
dipasang, Anda dapat memverifikasi instalasi menggunakan perintah air -v
perintah -v
Untuk menjalankan server DicedB langsung untuk pengembangan lokal:
git clone https://github.com/dicedb/dice
cd dice
air
Secara default, DicedB akan mencari file konfigurasi di /etc/dice/config.toml
. (Linux, Darwin, dan 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
Catatan
Jika Anda menggunakan Windows, disarankan untuk menggunakan Subsistem Windows untuk Linux (WSL) atau WSL 2 untuk menjalankan perintah di atas dengan mulus di lingkungan seperti Linux.
Jika Anda ingin menggunakan lokasi yang berbeda, Anda dapat menentukan jalur file konfigurasi khusus dengan -c flag
:
go run main.go -c /path/to/config.toml
Jika Anda ingin mengeluarkan file konfigurasi ke lokasi tertentu, Anda dapat menentukan jalur output khusus dengan -o flag
:
go run main.go -o /path/of/output/dir
Cara terbaik untuk terhubung ke DicedB adalah menggunakan dicedb cli dan Anda dapat menginstalnya dengan menjalankan perintah berikut
sudo su
curl -sL https://raw.githubusercontent.com/DiceDB/dicedb-cli/refs/heads/master/install.sh | sh
DicedB sepenuhnya kompatibel dengan protokol Redis, memungkinkan Anda untuk terhubung menggunakan klien atau SDK Redis yang ada.
Catatan
Fitur .WATCH
hanya dapat diakses melalui DicedB CLI. Jika Anda mengerjakan OS yang tidak didukung (sesuai skrip di atas), Anda selalu dapat mengikuti instruksi instalasi yang disebutkan dalam repositori DicedB/CLI.
Tes unit dan uji integrasi sangat penting untuk memastikan kebenaran dan dalam kasus DicedB, kedua jenis tes tersedia untuk memvalidasi fungsinya.
Untuk pengujian unit, Anda dapat menjalankan uji unit individual dengan menentukan nama fungsi uji menggunakan variabel lingkungan TEST_FUNC
dan menjalankan perintah make unittest-one
. Atau, berjalan make unittest
akan menjalankan semua tes unit.
TEST_FUNC= < name of the test function > make unittest-one
TEST_FUNC=TestByteList make unittest-one
make unittest
Tes integrasi, di sisi lain, melibatkan memulai server DicedB dan menjalankan serangkaian perintah untuk memverifikasi keadaan akhir yang diharapkan dan output. Untuk menjalankan uji integrasi tunggal, Anda dapat mengatur variabel lingkungan TEST_FUNC
ke nama fungsi uji dan menjalankan make test-one
. Menjalankan make test
akan menjalankan semua tes integrasi.
TEST_FUNC= < name of the test function > make test-one
TEST_FUNC=TestSet make test-one
make test
Bekerja untuk menambahkan lebih banyak tes di DicedB sedang berlangsung, dan kami akan segera port test redis suite ke basis kode ini untuk memastikan kompatibilitas penuh.
make run_benchmark
Untuk memulai dengan membangun dan berkontribusi pada DicedB, silakan merujuk pada masalah yang dibuat di repositori ini.
Kami menggunakan Astro Framework untuk memberi daya pada situs web Dicedb.io dan Starlight untuk menyalakan dokumen. Setelah Anda menginstal nodeJS, tembak perintah berikut untuk mendapatkan versi lokal Anda dari Dicedb.io.
cd docs
npm install
npm run dev
Setelah server dimulai, kunjungi http: // localhost: 4321/di browser favorit Anda. Ini berjalan dengan muat ulang panas yang berarti setiap perubahan yang Anda buat di situs web dan dokumentasi dapat langsung dilihat di browser.
docs/src/content/docs/commands
adalah tempat semua perintah didokumentasikandocs/src/content/docs/tutorials
adalah tempat semua tutorial didokumentasikan DicedB dimulai sebagai implementasi ulang Redis di Golang dengan gagasan membangun DB dari awal untuk memahami nuansa mikro yang datang dengan implementasinya. DicedB bukan hanya database lain; Ini adalah platform yang dibangun khusus untuk era real-time. Ketika sistem real-time menjadi semakin lazim dalam aplikasi modern, arsitektur yang dioptimalkan oleh DicedB diposisikan untuk memberi daya pada generasi pengalaman pengguna berikutnya.
Pedoman Kontribusi Kode diterbitkan di Contributing/ReadMe.MD; Harap baca mereka sebelum Anda mulai melakukan perubahan. Ini akan memungkinkan kita untuk memiliki standar praktik pengkodean yang konsisten dan pengalaman pengembang.
Kontributor dapat bergabung dengan server Discord untuk kolaborasi cepat.
$ sudo netstat -atlpn | grep :7379
$ sudo kill -9 <process_id>