【问题标题】:Cache for java-backend which can accept multiple keys & return multiple values可以接受多个键并返回多个值的 java-backend 缓存
【发布时间】:2014-04-08 18:35:03
【问题描述】:

目前我正在使用 hazelcast 作为我的应用程序的分布式缓存。它接受一个键并给我值。 但是,如果缓存可以在一个函数调用中接受多个键并返回相应的值,这将对我的应用程序更有帮助。 榛果可以吗?或者是否有任何替代解决方案,例如 EHCache 或 Redis?

【问题讨论】:

    标签: java caching redis ehcache hazelcast


    【解决方案1】:

    我不确定 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 标准定义了批量操作。所以每个符合标准的缓存都会有这个。

    【讨论】:

      【解决方案2】:

      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来做你需要做的事情

      【讨论】:

        【解决方案3】:

        Hazelcast IMap 为此提供了 getAll api。基本上

        Map IMap.getAll(keys); 
        

        为您提供给定键集的键值。

        See the javadoc for details

        【讨论】:

          【解决方案4】:

          是的,标准的 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 工作。这篇文章中表达的观点和观点是我自己的,并不一定反映我雇主的观点或观点。

          【讨论】:

            【解决方案5】:

            Redis 通过Redisson 框架实现了JCache API (JSR-107)

            【讨论】:

              猜你喜欢
              • 2016-07-09
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-04-12
              • 1970-01-01
              • 2018-08-16
              相关资源
              最近更新 更多