我看到您可以原子地增加 IronCache 中的值,但是如果您有许多 IronWorkers 尝试将值
put
放入单个缓存键中怎么办?将这些值更新放在消息队列中以便将更新同步到缓存会更好还是有其他惯用的方法?
目前没有惯用的方法来更新非整数缓存项而不引发竞争条件神。有很多不同的技巧可以解决该限制,但您的 MQ 解决方案(假设只有一名工作人员正在编写更改)可能是您最好的选择。
我们意识到了这个缺陷,并且正在努力修复,但目前没有什么可宣布的。
实现此目的的一种方法是将您的值拆分为多个缓存条目。假设你有 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等做同样的事情。这能解决你的问题吗?