-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathset_example.php
83 lines (64 loc) · 2.42 KB
/
set_example.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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?php
require_once __DIR__ . '/../vendor/autoload.php';
use Dazzle\Loop\Model\SelectLoop;
use Dazzle\Loop\Loop;
use Dazzle\Redis\Redis;
$loop = new Loop(new SelectLoop());
//create a new redis client
$endpoint = @$argv[1]?:'tcp://127.0.0.1:6379';
$redis = new Redis($endpoint, $loop);
/**
* Redis Set Commands
* @see https://redis.io/commands#set
*/
$redis->on('start', function (Redis $redis) {
$redis->flushDb();
$redis->sAdd('t_set', 1, 2, 3, 4, 5)->then(function ($value) {
printf("Add %d elements to set\n", $value);
});
$redis->sMembers('t_set')->then(function ($value) {
printf("All elements are: %s\n", implode(',', $value));
});
$redis->sAdd('t_a_set', 4, 5, 6, 7, 8, 9)->then(function ($value) {
printf("Then add %d elements to another set\n", $value);
});
$redis->sMembers('t_a_set')->then(function ($value) {
printf("All elements are: %s\n", implode(',', $value));
});
$redis->sDiff('t_set', 't_a_set')->then(function ($value) {
printf("Difference set [t_set - t_a_set] is: %s\n", implode(',', $value));
});
$redis->sUnion('t_set', 't_a_set')->then(function ($value) {
printf("Intersection [t_set %s t_a_set] is: %s\n", "\u{2229}" ,implode(',', $value));
});
$redis->sMove('t_set', 't_a_set', 1)->then(function ($value) use ($redis) {
printf("Move %d elements from t_set to t_a_set\n", $value);
});
$redis->sCard('t_set')->then(function ($value) use ($redis) {
printf("Now t_set has %d elements,", $value);
});
$redis->sCard('t_a_set')->then(function ($value) use ($redis) {
printf("t_set has %d elements\n", $value);
});
$redis->sRem('t_set', 2)->then(function ($value) {
printf("Remove %d element from t_set and it is %s\n", $value, '"2"');
});
$redis->sIsMember('test', 2)->then(function ($value) {
printf("In the end %s %s exist in t_set too\n", '"2"', $value ? 'is' : 'is not');
});
//And more than those commands that you could use...
$redis->end();
});
//stop global loop cauz that loop run for only one component(redis)
//if use more than one dazzle component,do not use like that
$redis->on('stop', function () use ($loop) {
$loop->stop();
});
$redis->on('error', function (Exception $e) use ($redis) {
echo $e->getMessage().PHP_EOL;
$redis->stop();
});
$loop->onStart(function () use ($redis) {
$redis->start();
});
$loop->start();