Initial commit
This commit is contained in:
48
bin/example.php
Normal file
48
bin/example.php
Normal file
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
|
||||
use Predis\Client;
|
||||
use Toalett\Redis\Timeseries\CommandBus;
|
||||
use Toalett\Redis\Timeseries\Model\Aggregation;
|
||||
use Toalett\Redis\Timeseries\Model\Filter;
|
||||
use Toalett\Redis\Timeseries\Model\Value;
|
||||
use Toalett\Redis\Timeseries\Protocol\Command as C;
|
||||
use Toalett\Redis\Timeseries\Protocol\Query as Q;
|
||||
use Toalett\Redis\Timeseries\QueryService;
|
||||
use Toalett\Redis\Timeseries\Timeseries;
|
||||
|
||||
require_once __DIR__ . '/../vendor/autoload.php';
|
||||
|
||||
const SERIES = 'temperature:2:32';
|
||||
const LABELS = ['sensor_id' => 2, 'area_id' => 32];
|
||||
|
||||
$client = new Client();
|
||||
$commandBus = new CommandBus($client);
|
||||
$queryService = new QueryService($client);
|
||||
|
||||
$commandBus->dispatch(C::delete(SERIES));
|
||||
$commandBus->dispatch(C::create(SERIES)->labels(LABELS));
|
||||
|
||||
$timeseries = new Timeseries($commandBus, SERIES);
|
||||
$timeseries->add(
|
||||
new Value(time() - 5, 3.2),
|
||||
new Value(time() - 4, 7.8),
|
||||
new Value(time() - 3, 2.3),
|
||||
new Value(time() - 2, 3.4),
|
||||
new Value(time() - 1, 5.4),
|
||||
new Value(time() - 0, 6.4)
|
||||
);
|
||||
|
||||
print("\n\n==> mrange (filter on area_id=32, sensor_id=(2,3,4,5), COUNT 2)\n");
|
||||
$query = Q::mrange();
|
||||
$query->filter(Filter::where('area_id')->is(32));
|
||||
$query->filter(Filter::where('sensor_id')->isOneOf(2, 3, 4, 5));
|
||||
dump($queryService->mrange($query));
|
||||
|
||||
print("\n\n==> mrevrange (filter on non-existing label)\n");
|
||||
$query = Q::mrevrange();
|
||||
$query->filter(Filter::where('some_label')->is('some_value'));
|
||||
dump($queryService->mrange($query));
|
||||
|
||||
print("\n\n==> range (aggregating var_p, timebucket=3)\n");
|
||||
$query = Q::range(SERIES)->aggregate(Aggregation::populationVariance(3));
|
||||
dump($queryService->range($query));
|
||||
Reference in New Issue
Block a user