POCO-Liberaries :: Poco Key到期时间不适用于set方法

时间:2018-04-27 06:03:00

标签: poco-libraries

我正在使用Poco Redis数据库,它使用set命令存储Key值对。 我的要求是在7天后自动删除该条目。

我正在使用poco redis set命令来实现该功能。

下面的

是set命令的签名: -

Command Command :: set(const std :: string& key,const std :: string& value,bool overwrite,const Poco :: Timespan& expireTime,bool create)

我遵循以下程序: -

  1. 首先我连接到redis数据库。

  2. 连接成功后,我创建了具有60秒值的timespan对象,并将key,value和timespan值传递给set方法。

  3. Timespan ts(60,0);

    命令setCommand = Command :: set(str_metadatakey,str_metadatavalue,true,ts,true); std :: string result = m_oRedisClient.execute(setCommand);

    但是当我执行上面的代码时,它会抛出异常。

1 个答案:

答案 0 :(得分:0)

遇到同样的问题。 例外是“ ERR协议错误:预期为'$',得到了':'”-因为redis预期“到期”为字符串。

作为一种解决方法,您可以明确指定expire作为字符串:

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