@Override
    public Set<K> keySet() {
        // Defensive copy
        return Collections.unmodifiableSet(getCache().asMap().keySet());
    }
Subclasses should implement this method to add to the cacheBuilder as required
and return a cache built from cacheBuilder. The builder already has a
removalNotificationConsumer if applicable and recordStats has been set.
stroom-cache/stroom-cache-impl/src/main/java/stroom/cache/impl/AbstractStroomCache.java