首页 文章

什么内存缓存实现将花费最少的努力来构建

提问于
浏览
2

我正在开发一个Web应用程序,它需要对可能非常大且不断变化的数据集进行一些内存缓存 . 我和我的合作伙伴正在开始讨论几种解决方案,但希望能够深入了解我们对几种不同解决方案的期望 . 我们的应用程序是用Java编写的,将在glassfish 3.1下运行

  • redis和webdis

  • hazelcast

  • Apache JCS

  • 用java创建我们自己的

我们也在考虑apache solr或单独使用lucene(如果我们使用hazelcast) . 我们应该将solr算作内存缓存解决方案,还是solr缓存与上面列出的解决方案无法真正比较 .

提前感谢您的建议

2 回答

  • 4

    很明显,选项4绝对不是最小的努力 .

    我与Hazelcast取得了不错的成绩 . 它以最小的努力提供了良好的回报 . 配置简单/直接,整个库“只是工作” .

    我不熟悉redis或webdis .


    您没有将它包含在列表中,但如果您真正需要的是缓存,请考虑使用Ehcache .

  • 0

    如果您想要简单,那么使用LinkedHashMap作为缓存并不会简单得多 .

    public static <K,V> Map<K,V> lruCache(final int maxSize) {
        return new LinkedHashMap<K,V>(maxSize*4/3, 0.75f, true) {
            @Override
            protected boolean removeEldestEntry(Map.Entry<K,V> eldest) {
                return size() > maxSize;
            }
        };
    }
    

    主要缺点是它非常简单 .

    如果您希望它是线程安全的,请使用Collections.synchronizedMap()

相关问题