Monday 27 June 2022

Ehcache: Remove multiple elements from the cache

org.ehcache.Cache#removeAll method removes any associated value for the given key set.

 

Signature

void removeAll(Set<? extends K> keys) throws BulkCacheWritingException;

 

Example

Set<Long> keysToRemove = new HashSet<>();
keysToRemove.add(1L);
keysToRemove.add(2L);

empCache.removeAll(keysToRemove);

Above snippet remove the elements with keys 1 and 2.

 


Find the below working application.

 

CacheRemoveAllDemo.java

package com.sample.app;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

import org.ehcache.Cache;
import org.ehcache.Cache.Entry;
import org.ehcache.CacheManager;
import org.ehcache.config.builders.CacheConfigurationBuilder;
import org.ehcache.config.builders.CacheManagerBuilder;
import org.ehcache.config.builders.ResourcePoolsBuilder;

public class CacheRemoveAllDemo {

	private static void printAllElementsFromCache(Cache<Long, String> empCache) {
		System.out.println("\nPrint all the elements from the cache");

		Iterator<Entry<Long, String>> iter = empCache.iterator();

		while (iter.hasNext()) {
			Entry<Long, String> entry = iter.next();
			System.out.println(entry.getKey() + " is mapped to (" + entry.getValue() + ")");
		}

	}

	public static void main(String[] args) {
		CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder().build(true);

		Cache<Long, String> empCache = cacheManager.createCache("empCache", CacheConfigurationBuilder
				.newCacheConfigurationBuilder(Long.class, String.class, ResourcePoolsBuilder.heap(100)).build());

		Map<Long, String> dataMap = new HashMap<>();
		dataMap.put(1L, "Ram,34");
		dataMap.put(2L, "Krishna,38");
		dataMap.put(3L, "Ravi,41");
		empCache.putAll(dataMap);

		printAllElementsFromCache(empCache);

		System.out.println("\nRemove the entries with keys 1 and 3");
		Set<Long> keysToRemove = new HashSet<>();
		keysToRemove.add(1L);
		keysToRemove.add(2L);

		empCache.removeAll(keysToRemove);
		printAllElementsFromCache(empCache);

		cacheManager.close();
	}

}

Output

Print all the elements from the cache
1 is mapped to (Ram,34)
2 is mapped to (Krishna,38)
3 is mapped to (Ravi,41)

Remove the entries with keys 1 and 3

Print all the elements from the cache
3 is mapped to (Ravi,41)





 

 

 

Previous                                                 Next                                                 Home

No comments:

Post a Comment