DicedB هو ذاكرة التخزين المؤقت المتوافقة مع Redis وتفاعلية وقابلة للتطوير ومتاحة للغاية وموحدة للأجهزة الحديثة.
نحن نبحث عن شركاء التصميم المبكرين ، لذلك ، إذا كنت ترغب في تقييم DicedB ، فمنع التقويم الخاص بنا. دائما حتى الدردشة.
حذر
DicedB قيد التطوير ويدعم مجموعة فرعية من أوامر redis. لذا ، يرجى عدم استخدامه في الإنتاج. ولكن لا تتردد في الذهاب إلى القضايا المفتوحة والمساهمة لمساعدتنا في تسريع التطوير.
لدينا مستودعات متعددة حيث يمكنك المساهمة. لذلك ، وفقًا لمصلحتك ، يمكنك اختيار واحد وبناء فهم أعمق للمشروع أثناء التنقل.
على الرغم من أن DicedB هو بديل للاستبدال لـ Redis ، مما يعني أنه لا يوجد منحنى تعليمي تقريبًا والتبديل لا يتطلب أي تغيير في التعليمات البرمجية ، إلا أنه لا يزال يختلف في جانبين رئيسيين وهم
.WATCH
مثل GET.WATCH
، ZRANGE.WATCH
، وما إلى ذلك ، مما يتيح للعملاء الاستماع إلى تغييرات البيانات والحصول على النتيجة في الوقت الفعلي كلما تغير شيء ما. . أوامر .WATCH
مفيدة للغاية عندما يتعلق الأمر ببناء تطبيقات في الوقت الفعلي مثل المتصدرين.
أسهل طريقة للبدء مع Dicedb هي استخدام Docker عن طريق تشغيل الأمر التالي.
docker run -p 7379:7379 dicedb/dicedb --enable-multithreading --enable-watch
سيبدأ الأمر أعلاه خادم DicedB الذي يعمل محليًا على المنفذ 7379
ويمكنك الاتصال به باستخدام DicedB CLI و SDKs.
نصيحة
نظرًا لأن 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
يوفر DicedB بيئة تطوير عمليات التحميل الساخنة ، والتي تتيح لك عرض تغييرات الكود على الفور في خادم مباشر. هذه الوظيفة مدعومة بالهواء
لتثبيت الهواء على نظامك ، لديك الخيارات التالية.
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
Command
لتشغيل خادم Dicedb Live للتطوير المحلي:
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 ، فمن المستحسن استخدام نظام Windows الفرعي لـ Linux (WSL) أو WSL 2 لتشغيل الأوامر المذكورة أعلاه بسلاسة في بيئة تشبه 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
Watch فقط من خلال DicedB CLI. إذا كنت تعمل على نظام التشغيل غير المدعوم (حسب البرنامج النصي أعلاه) ، فيمكنك دائمًا اتباع تعليمات التثبيت المذكورة في مستودع 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
Exected جميع اختبارات التكامل.
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 و Starlight لتشغيل المستندات. بمجرد تثبيت NodeJS ، قم بإطلاق أوامر تلاشى للحصول على الإصدار المحلي من تشغيل DicedB.io.
cd docs
npm install
npm run dev
بمجرد بدء تشغيل الخادم ، تفضل بزيارة http: // localhost: 4321/في متصفحك المفضل. يتم تشغيل هذا باستخدام إعادة تحميل ساخن مما يعني أي تغييرات تقوم بها في موقع الويب ويمكن عرض الوثائق على الفور على المتصفح.
docs/src/content/docs/commands
هي المكان الذي يتم توثيق جميع الأوامرdocs/src/content/docs/tutorials
هي حيث يتم توثيق جميع البرامج التعليمية بدأ Dicedb كإعادة تنفيذ Redis في Golang مع فكرة بناء DB من نقطة الصفر لفهم الفروق الدقيقة التي تأتي مع تنفيذها. Dicedb ليس مجرد قاعدة بيانات أخرى ؛ إنها منصة مصممة خصيصًا لعصر الوقت الفعلي. نظرًا لأن الأنظمة في الوقت الفعلي أصبحت منتشرة بشكل متزايد في التطبيقات الحديثة ، يتم وضع بنية DicedB المفرطة المحسنة لتشغيل الجيل القادم من تجارب المستخدم.
يتم نشر إرشادات مساهمة الكود في المساهمة/README.MD ؛ يرجى قراءتها قبل البدء في إجراء أي تغييرات. هذا من شأنه أن يتيح لنا الحصول على معيار ثابت من ممارسات الترميز وخبرة المطور.
يمكن للمساهمين الانضمام إلى خادم Discord للتعاون السريع.
$ sudo netstat -atlpn | grep :7379
$ sudo kill -9 <process_id>