Corvus هو وكيل مجموعة Redis سريعة وخفيفة الوزن لـ Redis 3.0 مع تمكين وضع الكتلة.
لا تدعم معظم تطبيقات عميل Redis مجموعة Redis. لدينا الكثير من الخدمات التي تعتمد على redis ، التي يتم كتابتها في Python و Java و Go و Nodejs وما إلى ذلك. من الصعب توفير مكتبات عملاء Redis للغات المتعددة دون كسر التوافق. استخدمنا Twemproxy من قبل ، لكنه يعتمد على Sentinel من أجل التوفر العالي ، ويتطلب أيضًا إعادة التشغيل لإضافة أو إزالة مثيلات إعادة الواجهة الخلفية ، مما يسبب انقطاع الخدمة. و Twemproxy واحد ملولب ، يتعين علينا نشر مثيلات متعددة twemproxy لعدد كبير من العملاء ، مما يسبب صداع SA.
لذلك ، صنعنا كورفوس.
انظر التفاصيل في نتائج الاختبار لدينا.
إذا استخدمت الإصدارات التي تم تنزيلها من صفحة الإصدارات ، فما عليك سوى جعل:
$ make
مع تمكين وضع التصحيح:
make debug
إذا كانت بناء من أحدث مصدر:
git clone https://github.com/eleme/corvus.git
cd corvus
git submodule update --init
make deps # need autoconf
make يمكن العثور على ثنائي في ./src/corvus .
مثال ملف التكوين هو في corvus.conf.
$ ./src/corvus path/to/corvus.confSET ، GET ، INCR ..).MGET : انقسام إلى GET متعددة.MSET : انقسام إلى SET متعددة.DEL : انقسام إلى مفتاح واحد متعددة DEL .EXISTS : تقسيم إلى مفتاح واحد واحد EXISTS .PING : تم تجاهلها ولن يتم إعادة توجيهها.INFO ، TIME : لن يتم إعادة توجيهها إلى Redis الخلفية ، سيتم إرجاع المعلومات التي تم جمعها بالوكالة.SLOWLOG : إعادة الأدوات البطيئة التي أنقذها Corvus نفسها. لاحظ أنه على عكس redis ، في إدخال Slowlog ، يوجد حقل remote latency إضافي إضافي قبل حقل total latency . سيقوم Slowlog أيضًا بتسجيل الأشرار الفرعي الأبطأ للأوامر المتعددة المفاتيح: MGET ، MSET ، DEL ، EXISTS . سيكون إجمالي الكمون من إدخال CMD الفرعي هو نفسه CMD الوالد.AUTH : هل المصادقة في الوكيل.CONFIG : دعم get ، set ، وإعادة rewrite الأمراض الفرعية لاسترداد ومعالجة Corvus Config.SELECT : تم تجاهله إذا كان الفهرس 0 ، ولن يتم إعادة توجيهه. EVAL : يجب إعطاء مفتاح واحد على الأقل. إذا كانت هناك مفاتيح متعددة ، فيجب أن تنتمي جميعها إلى نفس العقدة.تتطلب الأوامر التالية جميع مفاتيح وسيطة الانتماء إلى نفس عقدة redis:
SORT .RPOP ، LPUSH .SDIFF ، SDIFFSTORE ، SINTER ، SINTERSTORE ، SMOVE ، SUNION ، SUNIONSTORE .ZINTERSTORE ، ZUNIONSTORE .PFCOUNTE ، PFMERGE . لا تتوفر الأوامر التالية ، مثل KEYS ، لا يمكننا البحث في جميع مثيلات Redis الخلفية.
KEYS ، MIGRATE ، MOVE ، OBJECT ، RANDOMKEY ، RENAME ، RENAMENX ، SCAN ، WAIT .BITOP ، MSETNXBLPOP ، BRPOP ، BRPOPLPUSH .PSUBSCRIBE ، PUBLISH ، PUBSUB ، PUNSUBSCRIBE ، SUBSCRIBE ، UNSUBSCRIBE .EVALSHA ، SCRIPT .DISCARD ، EXEC ، MULTI ، UNWATCH ، WATCH .CLUSTER .ECHO ، QUIT .BGREWRITEAOF ، BGSAVE ، CLIENT ، COMMAND ، CONFIG ، DBSIZE ، DEBUG ، FLUSHALL ، FLUSHDB ، LASTSAVE ، MONITOR ، ROLE ، SAVE ، SHUTDOWN ، SLAVEOF ، SYNC . معهد ماساتشوستس للتكنولوجيا. حقوق الطبع والنشر (C) 2016 Elme Inc.
انظر الترخيص للحصول على التفاصيل.