【问题标题】:Memcached partial object invalidatedMemcached 部分对象无效
【发布时间】:2013-02-15 05:16:00
【问题描述】:

我们正在缓存以下类格式的对象。

公共类 CachedObject {

@javax.persistence.Transient
public List<ObjectA> objectAs;

@javax.persistence.Transient
public Date cacheExpirationDate;

}

我们有一个进程检查缓存对象的过期日期并在过期之前刷新缓存。如果有任何更新,还有另一个进程也使用 replace (spymemcached) 方法更新缓存对象。在我们的情况下,更新通常发生在 objectAs 上。缓存的对象永远不会被驱逐。我们还使用默认的slab (1MB) 大小设置启动了memcached。

问题:当我们获取一些对象时,我们发现缓存对象不是空的,但是objectAs是空的。我们随后在尝试对 objectAs 执行任何操作时遇到空指针异常。我检查过,我们总是在缓存/更新之前设置 objectAs 值。我还从 telnet 接口看到了不完整的缓存对象。当我刷新缓存时,它开始显示缓存中的完整对象。

有人可以建议可能出了什么问题吗?

【问题讨论】:

    标签: object memcached


    【解决方案1】:

    在运行了更多单元/集成测试后,我发现了此字段设置为 null 的情况。所以我在问题中所说的问题与memcached缓存服务器无关。这是与应用程序相关的问题。

    【讨论】:

      猜你喜欢
      • 2010-11-10
      • 2014-10-29
      • 2011-11-05
      • 1970-01-01
      • 2020-10-30
      • 1970-01-01
      • 1970-01-01
      • 2016-02-08
      • 2020-06-11
      相关资源
      最近更新 更多