@Override
    protected Map<String, byte[]> bulkRestore(final Collection<String> storageKeys) throws ResourceIOException {
        try {
            final Map<String, ?> storageObjectMap = client.getBulk(storageKeys);
            final Map<String, byte[]> resultMap = new HashMap<>(storageObjectMap.size());
            for (final Map.Entry<String, ?> resultEntry: storageObjectMap.entrySet()) {
                resultMap.put(resultEntry.getKey(), castAsByteArray(resultEntry.getValue()));
            }
            return resultMap;
        } catch (final CancellationException ex) {
            throw new MemcachedOperationCancellationException(ex);
        } catch (final OperationTimeoutException ex) {
            throw new MemcachedOperationTimeoutException(ex);
        }
    }
Create a storage backend using the given <i>memcached</i> client and
applying the given cache configuration, serialization, and hashing
mechanisms.

@param client           how to talk to <i>memcached</i>
@param config           apply HTTP cache-related options
@param serializer       alternative serialization mechanism
@param keyHashingScheme how to map higher-level logical "storage keys"
                        onto "cache keys" suitable for use with memcached
@since 5.2
httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/memcached/MemcachedHttpCacheStorage.java