【问题标题】:how to use List on Redis developing with C++ using hiredis如何在 Redis 上使用 List 使用hiredis 使用 C++ 开发
【发布时间】:2018-02-09 02:06:02
【问题描述】:

我尝试在 C++ 的 Linux 上将 list 与 redis 一起使用,如何在 C++ 上使用“rpush”、“lpush”、“rpop”、“lpop”? 我是这样写的:

this->_reply = (redisReply *) redisCommand(this->_context, "LPUSH %s %s", key.c_str(), value.c_str());
this->_reply = (redisReply *) redisCommand(this->_context, "RPOP %s", key.c_str());

但它没有成功,并且“this->_reply->str”表示“WRONGTYPE对持有错误值的键的操作”

如何使用这些方法?谢谢

【问题讨论】:

  • 也许您之前已将相同的键添加到您的 redis 实例中,而不是列表?
  • @nos 在我使用“DEL 键”删除密钥后,再次运行它并出现错误提示“在抛出 'std::logic_error'what():basic_string 的实例后调用终止: :_S_construct NULL not valid" 下一步该怎么做?
  • @Gerhardh 抱歉,我忘记了,已经删除了
  • 接下来您需要发布MCVE,以便人们可以调试和修复您的代码。

标签: c++ linux redis hiredis


【解决方案1】:

WRONGTYPE Operation against a key holding the wrong kind of value 表示键持有的不是列表,所以当你想对该键执行 lpush 时,它会报错。

你可以先用TYPE key命令用redis-cli测试key的类型。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-11
    • 2022-01-08
    • 1970-01-01
    • 2023-01-19
    • 1970-01-01
    • 2012-06-20
    • 1970-01-01
    • 2016-11-20
    相关资源
    最近更新 更多