I believe redis.setex() is necessary here, I don't know the redis client implementation but it seems possible the .set could happen after the .expire, better to be safe in one?