【发布时间】:2014-04-08 18:35:03
【问题描述】:
目前我正在使用 hazelcast 作为我的应用程序的分布式缓存。它接受一个键并给我值。 但是,如果缓存可以在一个函数调用中接受多个键并返回相应的值,这将对我的应用程序更有帮助。 榛果可以吗?或者是否有任何替代解决方案,例如 EHCache 或 Redis?
【问题讨论】:
标签: java caching redis ehcache hazelcast
目前我正在使用 hazelcast 作为我的应用程序的分布式缓存。它接受一个键并给我值。 但是,如果缓存可以在一个函数调用中接受多个键并返回相应的值,这将对我的应用程序更有帮助。 榛果可以吗?或者是否有任何替代解决方案,例如 EHCache 或 Redis?
【问题讨论】:
标签: java caching redis ehcache hazelcast
我不确定 redis 或 hazle cast 但 ehcache 有这个。看看这个
http://ehcache.org/apidocs/net/sf/ehcache/Ehcache.html
它有这个方法 Map getAll(Collection keys) 和一堆更多的批量操作方法
也可以看看这个以获得更多解释
http://dancing-devil.blogspot.com/2011/04/ehcache-bulk-operation-apis.html
即将发布的 JSR107 / JCache 标准定义了批量操作。所以每个符合标准的缓存都会有这个。
【讨论】:
redis 可以通过 MGET 命令帮助您执行此操作,此外,它还为您提供了大量数据结构,您可以通过这些数据结构从大量键中获取值。
SET a 10
SET b 20
MGET a b
1)10
2)20
HSET "hash name" "a" 10
HSET "hash name" "b" 20
HGETALL "hash name"
1)a
2)10
3)b
4)20
上面的例子展示了如何利用redis来做你需要做的事情
【讨论】:
【讨论】:
是的,标准的 JCache API 支持这一点。见:https://github.com/jsr107/jsr107spec/blob/master/src/main/java/javax/cache/Cache.java
我今天知道的唯一 JCache 实现是 Oracle Coherence;见:http://docs.oracle.com/middleware/1213/coherence/develop-applications/jcache_part.htm
为了全面披露,我在 Oracle 工作。这篇文章中表达的观点和观点是我自己的,并不一定反映我雇主的观点或观点。
【讨论】:
Redis 通过Redisson 框架实现了JCache API (JSR-107)
【讨论】: