代码之家  ›  专栏  ›  技术社区  ›  TheCatWhisperer

Stackexchange。Redis ListRightPush“参数数无效”

  •  1
  • TheCatWhisperer  · 技术社区  · 8 年前

    我正在尝试批量保存到redis列表中。对于一个批次来说,它工作得很好,但是对于两个批次,我得到一个异常,说我的参数数量无效。这是我的代码:

    List<RedisValue> toWrite = new List<RedisValue>(batchSize);
    UserRequest r;
    while (toWrite.Count < batchSize && _saveQueque.TryDequeue(out r))
    {
         toWrite.Add(Serialize(r));
    }
    
    if (toWrite.Count > 0)
    {
         GetDB().ListRightPush(key, toWrite.ToArray()); //Throws exception
         GetDB().KeyExpire(key, DateTime.Now.AddHours(4), CommandFlags.FireAndForget);
    }
    

    我做错了什么?


    它可能是我的序列化方案中的空终止符吗?

    1 回复  |  直到 8 年前
        1
  •  1
  •   Marc Gravell    8 年前

    听起来您使用的是旧版本的redis;的多值(varadic)版本 rpush 已添加到redis的v2.4中-您需要 至少是那个版本 使用此API。