private void evictLocalExpiredBlockedClients() {
        Iterator<BlockedClient<T>> iterator = blockedClientSkipList.iterator();
        long now = System.currentTimeMillis();
        while (iterator.hasNext()) {
            BlockedClient<T> blockedClient = iterator.next();
            if (blockedClient.blockEndTimeMillis() >= now) {
                break;
            }
            iterator.remove();
            T id = blockedClient.id();
            blockedClientIdToBlockEndTimeMillis.remove(id, blockedClient.blockEndTimeMillis());
        }
    }
Used to remove the local expired blocked clients quickly, even if there are a lot of blocked
clients so that we can run eviction more frequently.

@implNote It is acceptable to store the same IP or the user ID with different block times in
          the skip list because it is how the skip list works.
turms-server-common/src/main/java/im/turms/server/common/domain/blocklist/manager/BlocklistServiceManager.java