POCO-Liberaries :: Время истечения ключа Poco не работает в заданном методе - PullRequest
0 голосов
/ 27 апреля 2018

Я использую базу данных Poco Redis, которая хранит пару ключ-значение с помощью команды set. мое требование - удалить запись через 7 дней автоматически.

Я использую команду poco redis set для достижения функциональности.

ниже - подпись для команды set: -

Команда Command :: set (const std :: string & key, const std :: string & value, перезапись bool, const Poco :: Timespan & expireTime, создание bool)

Я выполняю следующую процедуру: -

  1. Сначала я подключаюсь к базе данных Redis.

  2. после успешного подключения я создаю объект временного диапазона со значением 60 секунд и передачей ключа, значения и значения временного промежутка для установки метода.

Timespan ts (60,0);

Команда setCommand = Command :: set (str_metadatakey, str_metadatavalue, true, ts, true); std :: string result = m_oRedisClient.execute (setCommand);

но когда я выполняю приведенный выше код, это вызывает исключение.

1 Ответ

0 голосов
/ 17 марта 2019

Столкнулся с той же проблемой. Исключением был «Ошибка протокола ERR: ожидалось $», получено «:» - так как ожидаемый redis «expire» будет строкой.

В качестве обходного пути вы можете явно указать expire в виде строки:

Command setCommand = Command::set(key, value);
setCommand  << "EX" << "1500"
...