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

问题描述 投票:1回答:1

我正在使用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)

我遵循以下程序: -

  1. 首先,我连接到redis数据库。
  2. 连接成功后,我创建了具有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);

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

poco-libraries
1个回答
0
投票

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

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

Command setCommand = Command::set(key, value);
setCommand  << "EX" << "1500"
© www.soinside.com 2019 - 2024. All rights reserved.