1

我看到您可以在 IronCache 中原子地增加一个值,但是如果您有许多 IronWorker 试图将put一个值添加到单个缓存键中怎么办?将这些值更新放在消息队列中以便将更新同步到缓存会更好还是有另一种惯用的方式?

4

2 回答 2

1

目前没有惯用的方法来更新非整数缓存项而不引起竞争条件之神。有很多不同的技巧可以绕过这个限制,但是您的 MQ 解决方案(假设只有一个工作人员正在编写更改)可能是您最好的选择。

我们知道这个缺点,我们正在努力修复,但我们目前没有什么要宣布的。

于 2012-12-03T20:57:28.193 回答
1

一种方法是将您的值拆分为多个缓存条目。假设你有你的 json 层次结构:

{
    "x": "y",
    "sub1": {
        "a": "b"
    },
    "sub2": {
        "c": "d"
    }
}

将其更改为:

{
    "x": "y",
    "sub1": "cache_key_a",
    "sub2": "cache_key_b"
}

然后在cache_key_a中:

{
    "a": "b"
}

并对 cache_key_b 等做同样的事情。那能解决你的问题吗?

于 2012-12-09T21:34:30.860 回答