ERR 值不是整数或超出范围

我有一个 lua 脚本,我从 .net 中运行它。

 const string script = " if redis.call('EXISTS', '{0}') == 1 then" +
                              " local user = redis.call('get','{0}')" +
                              " local value = cjson.decode(user)" +
                              " value['UserPreferences'] = cjson.decode('{1}')" +
                              " value['Timestamp'] = cjson.decode('{2}')" +
                              " local val=cjson.encode(value)" +
                              " redis.call('set', '{0}', val)" +
                              " redis.call('EXPIRE', '{0}','{3}')" +
                              " end";

        var redisScript = string.Format(script, "User_" + userId, JsonConvert.SerializeObject(userPreferences), JsonConvert.SerializeObject(DateTime.UtcNow), ConfigurationManager.AppSettings["RedisKeyExpiryTime"]);
      await Cache.ScriptEvaluateAsync(redisScript);

这会返回错误:

Error: ERR 值不是整数或超出范围

请给一些反馈来解决这个问题。

点赞