Don't cache if ttl is 0; don't expire if ttl is negative.