基于Java的memcached客户端,优化将数据放入memcache

标签 java optimization serialization memcached

我有 1000 个 bean 的列表,我需要在不同的项目之间共享它们。我为此目的使用内存缓存。目前,循环在完整列表上运行,每个 bean 都存储在具有唯一 memcache id 的 memcache 中。我想知道,而不是将每个 bean 独立地放入内存缓存中。将所有bean放入具有相同key的hashmap中,该key用于在memcache中存储bean,然后将这个hashmap放入memcache中。 与将每个 bean 单独放入 memcached 相比,这会给我带来任何重大改进吗?或者由于物体尺寸较大,这会给我带来任何麻烦吗? 如有任何帮助,我们将不胜感激。

最佳答案

它不会给你带来任何特别的好处——实际上加载速度可能会变慢——序列化就是序列化,在它周围添加一个 HashMap 包装器只会增加需要反序列化和填充的数据量。对于检索,假设大多数查找都被您要用于 HashMap 的键所破坏,您的检索时间将会慢得多,因为您将拉下整个图表只是为了获取其中一个谨慎的成员信息。

当然,如果数据完全是静态的,并且您只使用 memcached 来填充各种 JVM 中的值,您可以这样做,并以静态方式保留 HashMap ...但是这样您就会增加内存集群中节点数量的消耗...

关于基于Java的memcached客户端,优化将数据放入memcache,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4125911/

相关文章:

java - Swing 用户界面 : not visible components remain active

r - 理解 R 中 optim() 的 maxit 参数

optimization - 使用 StaticArrays 有效地填充矩阵中的 block

c# - C#中动态方法的数据库存储

python - 在 django rest 框架中调用序列化器

java - BigDecimal 值反序列化的问题

java - 如何创建带有行编号的 JFace TreeViewer

java比较两个枚举

java - 重新转换 Java Instrumentation Agent 库中的 native 方法

c++ - MSVC : tell the optimizer you clobber memory? 中微基准的优化障碍