Question

Quelle serait la meilleure façon d'utiliser un Redis DB dans un programme C ++?

Était-ce utile?

La solution

En utilisant une bibliothèque C liaisons ? Il ne semble pas être un wrapper C ++ disponible partout.

Autres conseils

Je fourchue le fictorial Redis-Cplusplus-client, a rendu compatible v2.0 Redis-serveur, ajouté manquants appels api et mis en œuvre hashage cohérent. Il y a aussi un état précoce des classes de haut niveau qui seront utilisables comme types stl dans un proche avenir (shared_string, shared_int, shared_set, ...). Rien est encore prêt pour la production, mais les tests fournis sont en cours d'exécution avec succès: -)

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

https://github.com/brianwatling/redispp

Je viens de publier mon c ++ Redis client sur GitHub. Il est caractéristique principale est en ce moment pipelining, je vais ajouter plus de fonctionnalités bientôt, peut-être sharding / hash cohérente suivante.

Liste officielle des C ++ clients

Découvrez la liste complète Redis C ++ clients sur redis.io . Vous y trouverez différents clients en fonction de boost, Qt, etc. Notez qu'en ce moment aucun des implémentations client C ++ sont marqués comme « Recommandé. » Mais il y a un client C recommandé, hiredis , qui devrait fonctionner bien en C ++.

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

Cette bibliothèque client C ++ ne se maintient pas cependant que peu de gens utilisent effectivement C ++ pour communiquer avec Redis.

https://github.com/petrohi/hiredispp

Consultez également hiredispp. Il est loin d'être mise en œuvre complète, mais très simpliste qui entoure hiredis à base C. Hiredis prend en charge le protocole bas niveau et concernant le réseau tandis que les emballages de hiredispp simplement en font C ++ convivial.

J'ai écrit un client C ++ Redis: Redis-plus-plus . Il est basé sur hiredis , et écrit en C ++ 11. Il prend en charge les fonctions suivantes:

  • La plupart des commandes pour Redis.
  • pool de connexions.
  • les scripts Redis.
  • thread-safe, sauf indication contraire.
  • Redis publication / abonnement.
  • pipeline Redis.
  • transaction Redis.
  • Redis cluster.
  • Redis Sentinel.
  • Redis Stream.
  • interface STL-like.
  • Interface de commande générique.

Il est très rapide et facile à utiliser. Si vous avez un problème avec ce client, vous pouvez me faire savoir . Si vous le souhaitez, aussi se sentir à étoile il:)

#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.
}

Vérifiez la doc pour plus de détails.

peut être trouvé un autre client C ++ ici: https://github.com/luca3m/redis3m

Il est un wrapper de hiredis, avec des classes C ++ belles, une mise en commun de connexion haute disponibilité et un ensemble de modèles déjà mis en œuvre et prêts à l'emploi.

Si vous vous souciez de la performance, donner un essai bredis . Il utilise c ++ et 14 boost::asio et n'a pas d'autres dépendances (à savoir pas hiredis ni libev etc.). Son utilisation peut-être pas aussi pratique que les autres bibliothèques C ++, mais qui était hors commerce par la conception dans un souci de performance et une flexibilité maximale.

bredis beaucoup plus facile à utiliser sous Windows, car il n'a pas de dépendance de hiredis.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top