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

How to increment float values with Aerospike PHP client

如何使用 AeroSpike 的 PHP 客户端增加浮点值?放置浮点值工作正常,但增量明显中断 php 进程和 returns 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

我们的一个生产应用程序也 运行 遇到了同样的问题,使用 Aerospike Java 客户端作为编写器,PHP 客户端作为 reader。我们通过将双精度转换为 12 位数字并删除句点来存储我们的货币双精度作为 long int 来解决这个问题。例如,1.2345 美元将作为 1234500000000 存储在 bin 值中。这允许我们向 Aerospike 发送增量多操作。

当 PHP 客户端将存储值读取到我们的数据库服务器以进行报告时,我们会将 64 位 int 转换回带 12 位数字的双精度值。 1234500000000 -> 1.2345 美元。