我将一些计数器存储在 aerospike-say 计数器a
中,b
并c
连同一个 parent_id 说pid
,显然还有一个 pk 说pk
。我需要从我的服务中增加计数器,所以我写了三个函数incrementA
,incrementB
和incrementC
。
现在假设,我必须从服务中调用函数incrementA
。计数器a
递增,但其他计数器均未初始化为0
. 现在,我知道当我调用incrementB
或incrementC
相应的计数器会增加时,但我找不到初始化pid
.
我可以想到以下方法来解决上述问题:
- 在我的服务中编写初始化逻辑。所以,在 aerospike 我有类似的东西
{'pk':'pk1', 'a':0,'b':0,'c':0,'pid':'pid1'}
。 - 每当我对任何计数器进行增量时,我也会对其他计数器进行初始化,或者
pid
如果尚未完成。
上述方式的问题是:
- 要从服务初始化,我必须检查初始化是否已经完成(否则我将重置我的计数器)。这基本上会使 aerospike 呼叫的数量增加一倍。(批处理调用在这里有帮助吗?)
- 如果在增加特定计数器的同时为其他人初始化,我将
pid
使用相同的值一次又一次地更新。
如果有人能提出更好的方法,我将不胜感激!
PS:我需要pid
在数据库中为每个pk
,因为我需要查询所有pk
具有相同pid
.