Как использовать Redis в программе на C ++? - PullRequest
15 голосов
/ 02 февраля 2010

Как лучше всего использовать Redis DB в программе на C ++?

Ответы [ 9 ]

13 голосов
/ 14 сентября 2010

Я разбудил вымышленный клиент redis-cplusplus, сделал его совместимым с redis-server v2.0, добавил недостающие вызовы API и реализовал согласованное хеширование. Существует также раннее состояние классов высокого уровня, которые будут использоваться, как и типы stl, в ближайшем будущем (shared_string, shared_int, shared_set, ...). Ничто еще не готово к производству, но предоставленные тесты успешно запущены: -)

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

4 голосов
/ 08 июля 2014

Официальный список клиентов C ++

Изучите полный список из клиентов Redis C ++ на redis.io . Там вы найдете разных клиентов, основанных на boost, Qt и т. Д. Обратите внимание, что в настоящее время ни одна из реализаций клиента C ++ не помечена как «Рекомендуемая». Но есть рекомендуемый клиент C, hiredis , который должен прекрасно работать в C ++.

4 голосов
/ 05 января 2011

https://github.com/brianwatling/redispp

Я только что выпустил свой клиент C ++ Redis на GitHub. Сейчас его главная особенность - конвейерная обработка, я скоро добавлю больше возможностей, возможно, затем добавим хардинг / согласованное хеширование.

4 голосов
/ 08 февраля 2010

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

Однако эта клиентская библиотека C ++ не поддерживается, поскольку на самом деле мало кто использует C ++ для связи с Redis.

3 голосов
/ 02 февраля 2010

Использование библиотеки C привязок ? Кажется, нигде нет доступной оболочки C ++.

1 голос
/ 16 октября 2018

Я написал клиент C ++ Redis: redis-plus-plus . Он основан на hiredis и написан на C ++ 11. Поддерживаются следующие функции:

  • Большинство команд для Redis.
  • Пул подключений.
  • Сценарий Redis.
  • Поток безопасен, если не указано иное.
  • Redis опубликовать / подписаться.
  • Трубопровод Redis.
  • Redis транзакция.
  • Redis Cluster.
  • Redis Sentinel.
  • 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.
}

Подробности смотрите в doc .

1 голос
/ 06 мая 2014

Другой клиент C ++ можно найти здесь: https://github.com/luca3m/redis3m

Это оболочка hiredis с хорошими классами C ++, пулом соединений высокой доступности и набором шаблонов, уже реализованных и готовых к использованию.

1 голос
/ 25 декабря 2010

https://github.com/petrohi/hiredispp

Также проверьте hiredispp. Это далеко не полная, но очень упрощенная реализация, которая охватывает Hiredis на основе Си. Hiredis заботится о протоколах низкого уровня и сетевых вещах, в то время как оболочки hiredispp просто делают его дружественным к C ++.

0 голосов
/ 14 апреля 2019

Если вы заботитесь о производительности, попробуйте bredis . Он использует c ++ 14 и boost::asio и не имеет других зависимостей (то есть нет hiredis или libev и т. Д.). Его использование может быть не таким удобным, как в других библиотеках C ++, но это было компромиссным решением ради производительности и максимальной гибкости.

bredis гораздо проще в использовании в Windows, поскольку не имеет зависимости hiredis.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...