我正在使用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)
我遵循以下程序: -
首先我连接到redis数据库。
连接成功后,我创建了具有60秒值的timespan对象,并将key,value和timespan值传递给set方法。
Timespan ts(60,0);
命令setCommand = Command :: set(str_metadatakey,str_metadatavalue,true,ts,true); std :: string result = m_oRedisClient.execute(setCommand);
但是当我执行上面的代码时,它会抛出异常。
答案 0 :(得分:0)
遇到同样的问题。 例外是“ ERR协议错误:预期为'$',得到了':'”-因为redis预期“到期”为字符串。
作为一种解决方法,您可以明确指定expire作为字符串:
Command setCommand = Command::set(key, value);
setCommand << "EX" << "1500"