如何使用Aerospike PHP客户端增加浮点值

时间:2016-07-05 08:37:50

标签: php aerospike

如何使用AeroSpike的PHP客户端增加浮点值?放置浮点值工作正常,但增量明显打破PHP进程并返回nginx坏网关。 我使用的代码:

    $key = $db->initKey("test", "queries", 'bench');
    $p = array('a' => 2.3);
    $db->put($key, $p);              // works fine
    $db->increment($key, 'a', 4.2);  // php process crashes at this point

1 个答案:

答案 0 :(得分:1)

我们的一个生产应用程序也遇到了同样的问题,使用Aerospike Java客户端作为编写器,PHP客户端作为读者。我们通过将双倍货币转换为12位数并减少期限来存储我们的货币双倍数量来解决这个问题。例如,$ 1.2345将作为1234500000000存储在bin值中。这允许我们将增量多操作发送到Aerospike。

当PHP客户端将存储值读入我们的数据库服务器以进行报告时,我们会将64位int转换回双W / 12位数。 1234500000000 - > $ 1.2345