redis — C ++ RedisClient: как работает RedisValue.toInt ()?

Речь идет о RedisClient, который является клиентом C ++.

Я знаю, что вы не можете хранить целые числа в Redis (которые внутренне преобразованы).

Команда RedisSyncClient :: сама по себе не поддерживает целые числа, поскольку RedisBuffer нельзя инициализировать с помощью int, поэтому:

redis->command("SET", "mykey", 1);

не скомпилируется (вам нужно добавить числа в виде строки).

Однако RedisValue может быть инициализирован с помощью int (не уверен, когда он используется), и он содержит открытый метод toInt ():

redis->command("SET", "mykey", "1");
result = redis->command("GET", "mykey");
cout << "INT: " << result.toInt() << " , STR: " << result.toString() << endl;

INT: 0, STR: 1

Сначала я подумал, что внутренне строки были преобразованы в int, но он всегда возвращает «0». При тестировании RedisValue.isInt () кажется, что он не может распознать числа, так как возвращает «false».

  • Каково намерение toInt (), если числа видятся (этой библиотекой) только как строки?
  • Я использую это неправильно?
  • Это функция незавершенного производства?

0

Решение

Теперь вещи имеют смысл для меня …
Кажется, что это может быть использовано для ответов redis, таких как:

result = redis->command("EXISTS", "mykey");
cout << "? " << result.isInt() << endl;

? 1

В этом случае toInt () работает как положено.

Мне просто нужно просмотреть документацию Redis и посмотреть, какие команды возвращают Int. Он не предназначен для использования с «нормальными» значениями.

(извините за ответ на свой вопрос, я был бы рад принять другие ответы, если они охватывают вещи, которые я пропустил).

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]