int Ardb::Expireat(Context& ctx, RedisCommandFrame& cmd) { uint32 v = 0; if (!check_uint32_arg(ctx.reply, cmd.GetArguments()[1], v)) { return 0; } int err = GenericExpire(ctx, cmd.GetArguments()[0], v * 1000); fill_int_reply(ctx.reply, err == 0 ? 1 : 0); return 0; }
int Ardb::Expire(Context& ctx, RedisCommandFrame& cmd) { uint64 v = 0; if (!check_uint64_arg(ctx.reply, cmd.GetArguments()[1], v)) { return 0; } int err = GenericExpire(ctx, cmd.GetArguments()[0], v * 1000 + get_current_epoch_millis()); fill_int_reply(ctx.reply, err == 0 ? 1 : 0); return 0; }
int Ardb::PExpire(Context& ctx, RedisCommandFrame& cmd) { uint32 v = 0; if (!check_uint32_arg(ctx.reply, cmd.GetArguments()[1], v)) { return 0; } ValueObject meta; int err = GenericExpire(ctx, cmd.GetArguments()[0], v + get_current_epoch_millis()); CHECK_ARDB_RETURN_VALUE(ctx.reply, err); fill_int_reply(ctx.reply, err == 0 ? 1 : 0); return 0; }
int Ardb::Persist(Context& ctx, RedisCommandFrame& cmd) { GenericExpire(ctx, cmd.GetArguments()[0], 0); return 0; }