【问题标题】:ssm simple-spring-memcached - cache write not workingssm simple-spring-memcached - 缓存写入不起作用
【发布时间】:2014-08-06 13:23:55
【问题描述】:

我直接使用 SSMCache#put API 来获取缓存并更新密钥。

最初我已经使用下面的 spring-cache 注释方法从缓存中读取了值。

@Cacheable(value="CACHE_JOURNALS", key="#ID") 
    public JournalBean getJournalByID(int ID){...}
...
[INFO] (CXServiceImpl.java:sendTo:78) read: [1, xxx, yyy, 5348 ]

然后更新 'bean.count' 字段并回写。

cache.put(key, bean);
...
[INFO] (SSMCache.java:put:152) Put '[1, xxx, yyy, 5349 ]' under key 1 to cache CACHE_JOURNALS

稍后 Spring 服务尝试读取缓存 (CACHE_JOURNALS),但缓存中的 'bean.count' 的值没有更新,它是旧值 (5348)。

我希望我调用了正确的 API 来更新缓存元素。有什么指点吗?

【问题讨论】:

    标签: java memcached simple-spring-memcached ssm


    【解决方案1】:

    您能否展示一下您是如何配置CACHE_JOURNALS的?

    您已启用登录 SSM 以在调用 cache.put 时查看 put 命令。你可以为@Cacheable 做同样的事情吗?让我们看看这个对象在缓存中存储在什么键下。

    如果您想更新缓存中的元素,您不必使用 SSM 类。可以使用Spring注解@CachePut

    【讨论】:

    • @Cacheble 带注释的方法 'getJournalByID' 位于同一个 bean 中,并被调用以从缓存中读取元素。 Spring 不会拦截对同一 bean 中的方法的调用。讨论并解决了here.
    猜你喜欢
    • 1970-01-01
    • 2017-03-29
    • 1970-01-01
    • 1970-01-01
    • 2014-05-01
    • 2013-06-23
    • 2020-02-08
    • 2014-04-15
    • 1970-01-01
    相关资源
    最近更新 更多