Как увеличить значения с плавающей запятой с помощью PHP-клиента Aerospike

Как увеличить значения с плавающей запятой с помощью PHP-клиента AeroSpike? Размещение значений с плавающей запятой работает нормально, но приращение заметно нарушает процесс php и возвращает nginx bad gateway.
Код, который я использую:

    $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

Решение

Одно из наших производственных приложений также столкнулось с той же проблемой, используя Java-клиент Aerospike в качестве писателя и PHP-клиент в качестве читателя. Мы справились с этой проблемой, сохранив нашу валюту в виде двойных длинных целых, преобразовав ее в 12-значную шкалу и отбросив период. Например, $ 1,2345 будет храниться в значении корзины как 1234500000000. Это позволяет нам отправлять инкрементные мультиоперации в Aerospike.

Когда клиент PHP считывает значение для хранения на наш сервер БД для составления отчетов, мы конвертируем 64-битное целое число обратно в двойную 12-разрядную шкалу. 1234500000000 -> 1,2345.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector