سؤال

ما هي أفضل طريقة لاستخدام Redis DB ضمن برنامج C ++؟

هل كانت مفيدة؟

المحلول

باستخدام ج روابط مكتبة؟ لا يبدو أن هناك غلاف C ++ متاح في أي مكان.

نصائح أخرى

لقد تربطت بإعادة التهوية الفاتحة-Clestplus-Client ، مما جعلها متوافقة مع إعادة صياغة V2.0 ، وأضفت مكالمات API المفقودة وتنفيذ التجزئة المتسقة. هناك أيضًا حالة مبكرة من فئات المستوى العالي والتي ستكون قابلة للاستخدام مثل أنواع STL في المستقبل القريب (shared_string ، shared_int ، shared_set ، ...). لا شيء جاهز للإنتاج حتى الآن ، لكن الاختبارات المقدمة تعمل بشكل ناجح :-)

http://github.com/mrpi/redis-cplusplus-client

https://github.com/brianwatling/redispp

لقد أصدرت للتو عميل C ++ Redis على Github. إنها الميزة الرئيسية في الوقت الحالي هي أنابيب الأنابيب ، وسأضيف المزيد من الميزات قريبًا ، وربما تقطع/تجزئة متسقة بعد ذلك.

القائمة الرسمية لعملاء C ++

استكشف أ القائمة الكاملة من عملاء Redis C ++ على redis.io. ستجد هناك عملاء مختلفين بناءً على Boost و QT ، وما إلى ذلك. لاحظ أنه في هذا الوقت ، لم يتم تمييز أي من تطبيقات عميل C ++ على أنها "موصى بها". ولكن هناك عميل C الموصى به ، مستأجر, ، والتي يجب أن تعمل بشكل جيد في C ++.

http://github.com/fictorial/redis-cplusplus-client

لا يتم الحفاظ على مكتبة عميل C ++ هذه ، ولكن عدد قليل من الأشخاص يستخدمون C ++ بالفعل للتواصل مع Redis.

https://github.com/petrohi/hiredispp

تحقق أيضا من HiredIspp. إنه بعيدًا عن التنفيذ الكامل ، ولكنه التبسيط للغاية الذي يلف حول C على أساس C. يعتني Hiredis ببروتوكول وشبكات منخفضة المستوى ، بينما تجعل أغلفة HiredIspp فقط C ++ ودية.

لقد كتبت عميل C ++ Redis: redis زائد زائد. إنه يعتمد على مستأجر, ، وكتب في C ++ 11. وهو يدعم الميزات التالية:

  • معظم الأوامر ل redis.
  • تجمع الاتصال.
  • redis البرمجة النصية.
  • موضوع آمن ما لم ينص على خلاف ذلك.
  • Redis نشر/اشتراك.
  • خط أنابيب redis.
  • معاملة REDIS.
  • مجموعة Redis.
  • ريديس سينتينيل.
  • تيار redis.
  • واجهة تشبه STL.
  • واجهة أمر عام.

إنه سريع للغاية وسهل الاستخدام. إذا كان لديك أي مشكلة مع هذا العميل ، فلا تتردد في ذلك دعني اعرف. إذا أعجبك ذلك ، فلا تتردد أيضًا في نجمة ذلك :)

#include <sw/redis++/redis++.h>
using namespace sw::redis;

try {
    Redis redis("tcp://127.0.0.1:6379");

    redis.set("key", "val");
    auto val = redis.get("key");
    if (val) {
        // dereference val to get the value of string type.
        std::cout << *val << std::endl;
    }   // else key doesn't exist.

    redis.rpush("list", {"a", "b", "c"});
    std::vector<std::string> list;
    redis.lrange("list", 0, -1, std::back_inserter(list));

    // put a vector<string> to Redis list.
    redis.rpush("another-list", list.begin(), list.end());

    auto tx = redis.transaction();

    auto tx_replies = tx.incr("num0")
                        .incr("num1")
                        .mget({"num0", "num1"})
                        .exec();

    auto redis_cluster = RedisCluster("tcp://127.0.0.1:7000");

    // RedisCluster has similar interface as Redis.
    redis_cluster.set("key", "value");
    val = redis_cluster.get("key");
} catch (const Error &err) {
    // error handling.
}

افحص ال مستند للتفاصيل.

يمكن العثور على عميل C ++ آخر هنا: https://github.com/luca3m/redis3m

إنه غلاف من Hiredis ، مع فصول C ++ لطيفة ، وتجميع اتصال عالية التوفر ومجموعة من الأنماط التي تم تنفيذها بالفعل وجاهزة للاستخدام.

إذا كنت تهتم بالأداء ، فحاول بريديس. يستخدم C ++ 14 و boost::asio وليس لديه تبعيات أخرى (أي لا hiredis ولا libev إلخ.). قد لا يكون استخدامه مناسبًا مثل مكتبات C ++ الأخرى ، ولكن تم تداول ذلك من خلال التصميم من أجل الأداء وأقصى قدر من المرونة.

بريديس أكثر سهولة في الاستخدام على Windows ، لأنه لا يوجد لديه hiredis الاعتماد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top