-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathCountMinSketch.php
68 lines (59 loc) · 1.64 KB
/
CountMinSketch.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php
/**
* @project phpredis-bloom
* @author Rafael Campoy <rafa.campoy@gmail.com>
* @copyright 2019 Rafael Campoy <rafa.campoy@gmail.com>
* @license MIT
* @link https://github.com/averias/phpredis-bloom
*
* Copyright and license information, is included in
* the LICENSE file that is distributed with this source code.
*/
namespace Averias\RedisBloom\DataTypes;
use Averias\RedisBloom\Command\CountMinSketch\CountMinSketchCommandTrait;
class CountMinSketch extends BaseDataType implements CountMinSketchInterface
{
use CountMinSketchCommandTrait;
/**
* @inheritDoc
*/
public function initByDim(int $width, int $depth): bool
{
return $this->countMinSketchInitByDim($this->name, $width, $depth);
}
/**
* @inheritDoc
*/
public function initByProb(float $errorRate, float $probability): bool
{
return $this->countMinSketchInitByProb($this->name, $errorRate, $probability);
}
/**
* @inheritDoc
*/
public function incrementBy(...$itemsIncrease): array
{
return $this->countMinSketchIncrementBy($this->name, ...$itemsIncrease);
}
/**
* @inheritDoc
*/
public function query(...$items): array
{
return $this->countMinSketchQuery($this->name, ...$items);
}
/**
* @inheritDoc
*/
public function mergeFrom(int $numKeys, array $sketchKeys, array $weights = []): bool
{
return $this->countMinSketchMerge($this->name, $numKeys, $sketchKeys, $weights);
}
/**
* @inheritDoc
*/
public function info(): array
{
return $this->countMinSketchInfo($this->name);
}
}