Параметры для Redis 5.0 Cluster с C ++

Я изучаю кластер Redis 5.0 с C ++. Я уже видел различные варианты, перечисленные на официальном сайте Redis, но ни один из клиентов C ++ не отмечен рекомендуется там. Я попробовал клиент C "hiredis-vip", он работал для моего первоначального прототипа, однако после сообщения о проблеме (и ее обходном пути) мне сказали, что этот клиент, похоже, официально не поддерживает Redis 5.0 (см. Мой отчет о проблеме и его комментарии здесь).

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

  1. Поддержка более новых версий Redis (в идеале 5.0) с поддержкой кластеров
  2. Было бы здорово иметь готовую реализацию RedLock (для моих требований распределенной блокировки).

person arz    schedule 01.03.2019    source источник


Ответы (2)


Попробуйте bredis. По сути, это тонкая оболочка вокруг redis-protocol, поэтому, как только протокол не изменится, он автоматически поддерживать все функции Redis, например, потоки.

person Ivan Baidakou    schedule 14.04.2019

Я написал клиент C ++, который поддерживает Redis Cluster с интерфейсами, подобными STL. Вы можете попробовать: redis-plus-plus.

Однако на данный момент он не поддерживает RedLock.

auto cluster = RedisCluster("tcp://127.0.0.1:7000");
cluster.set("key", "value");
cluster.lpush("list", {"a", "b", "c"});
person for_stack    schedule 02.03.2019
comment
ДА, с помощью универсального командного интерфейса вы можете отправить любую команду в Redis 5.0 и соответствующий кластер. Просто попробуйте, и если вам это нравится, отметьте это :) Если у вас возникнут проблемы с redis-plus-plus, дайте мне знать. - person for_stack; 05.03.2019