third-party Caching software- what do they provide

2019-04-29 03:57发布

Why would one want to use an out of the box caching product like ehcache or memcached ?

Wont a simple hashmap do ? I understand this is a naive question but I would like to see some answers about when a simple hashmap will suffice and a thirdparty caching solution is overkill.

标签: java caching
2条回答
▲ chillily
2楼-- · 2019-04-29 04:20

as Tom mentioned, requirements say everything. If all you need is a place to put in your data using key-value pairs, a hashmap will do.

But if you need overflow capabilities (writing to disk when the map is "full"), entry expiration (remove when an entry has not been "touched" in a while), clustered caches, redundant caches, you fall back on the don't reinvent the wheel paradigm, and use the third-party caching solution.

I've been using ehcache for almost 3 years now. I use just a slice of the total feature set, but the ones I do, work great.

查看更多
Rolldiameter
3楼-- · 2019-04-29 04:39

Some things Ehcache can give you, that you would have to manage yourself with a HashMap.

An eviction policy. If your data never grows, then no need to worry. But if you want to prevent a memory leak eventually breaking your app, then you need an eviction policy. With ehcache, you can configure the time to live, and time to idle of elements in your cache.

Clustered caching with Terracotta. If you have more than one tomcat for failover / scalability, then you can link Ehcache up to a Terracotta cluster, so that all instances can see the same data if needed.

Transparent disk overflow - be this on the tomcat server, or the terracotta cluster. When data doesn't fit into heap.

Off heap storage. New technologies such as BigMemory mean you have access to a much larger in-memory cache without GC overheads.

Concurrency. Ehcache can use a ConcurrentDistributedMap to give the optimal performance in a clustered configuration.

This is just the tip of the iceberg.

查看更多
登录 后发表回答