IronCache的原子更新

时间:2012-11-29 16:35:45

标签: memcached mq iron.io iron

我看到你可以在IronCache中以原子方式递增一个值,但是如果你有很多IronWorkers尝试将put一个值放入一个缓存键中呢?将这些值更新放在消息队列上以便将更新同步到缓存或者是否存在另一种惯用方法会更好吗?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分: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执行相同操作,依此类推。这会解决你的问题吗?