【发布时间】:2014-03-09 06:20:00
【问题描述】:
我正在做一个项目,每秒对键值对进行大量的 Set 操作,而 Redis 看起来是一个非常好的方法。
但是,我对此有第二个想法,如果使用 Java HashSet 完成相同的集合操作,实际上 Redis 也使用 HashTable 进行存储。
我认为,这会比 redis 执行得更快,因为除了 RTT 之外,不会有任何网络、序列化和其他东西。
是这样吗,或者redis可能由于某种原因性能更好(现在,我只关注性能和线程安全,而不是复制/分发等)
另外,如果是 Java,是否有任何不错的框架,其中包含一些用于相同内容的算法。
【问题讨论】:
-
当您编写一个示例程序并对自己进行一些概要分析时发生了什么?
-
事实上,我打算自己做。但是,我无法真正回答,但在 Google Groups 的某个地方,我看到人们在集合操作中使用 C 的速度比 java 快。
-
由于您已经提到的原因,Java 将胜过 Redis - 如果您的集合包含它支持的数据类型,您应该尝试trove.starlight-systems.com;这将通过消除装箱/拆箱成本进一步提高性能。
标签: java multithreading performance algorithm redis