Как использовать Redis в рамках программы C ++?

StackOverflow https://stackoverflow.com/questions/2181474

  •  24-09-2019
  •  | 
  •  

Вопрос

Что было бы лучшим способом использования Redis DB в программе C ++?

Это было полезно?

Решение

С помощью C Привязки библиотека? Кажется, что нигде не доступен обертка C ++.

Другие советы

Я развесил фикаторный клиент Redis-CPLUSPLUS-клиента, сделал его совместимым с Redis-Server 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-клиент, HIRYIS, что должно работать просто в C ++.

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

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

https://github.com/petrohi/hiredispp.

Также проверьте hyregiSpp. Он далеко не завершен, но очень упрощенная реализация, которая охватывает CARY CARY HIRYIS. HIRYIS позаботится о протоколе низкого уровня и сетевых вещей, в то время как HearmiSpp Wrappers просто делают его C ++ дружелюбным.

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

  • Большинство команд для Redis.
  • Пул соединения.
  • Redis Scripting.
  • Резьба безопасна, если не указано иное.
  • Redis Опубликовать / Подписаться.
  • Редис-трубопровод.
  • Redis Transaction.
  • Redis Cluster.
  • Redis Sentinel.
  • Redis Stream.
  • 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