我正在使用Poco Redis数据库,它使用set命令存储Key值对。我的要求是自动删除7天后的条目。
我正在使用poco redis set命令来实现该功能。
下面是set命令的签名: -
命令命令:: set(const std :: string&key,const std :: string&value,bool overwrite,const Poco :: Timespan&expireTime,bool create)
我遵循以下程序: -
Timespan ts(60,0);
命令setCommand = Command :: set(str_metadatakey,str_metadatavalue,true,ts,true); std :: string result = m_oRedisClient.execute(setCommand);
但是当我执行上面的代码时,它会抛出异常。
面临同样的问题。例外是“ERR协议错误:预期'$',得到':'” - 因为redis预期“到期”为字符串。
作为一种解决方法,您可以将expire明确指定为字符串:
Command setCommand = Command::set(key, value);
setCommand << "EX" << "1500"