private static boolean shouldUpdateValue(final String playerName) {

    // Incorrectly cached, so cache now.
    if (!isLastCached(playerName) || !isCachedUUID(playerName))
      return true;

    final long lastCacheTime = getLastCached(playerName);

    // No cache time
    if (lastCacheTime <= 0) {
      return true;
    }

    final long currentTime = System.currentTimeMillis();

    final long lifeTime = currentTime - lastCacheTime;

    // The cached value is older than it ought to be.
    if ((lifeTime / 3600000) > maxLifeTime) {
      return true;
    }

    return false;
  }