Skip to content

Commit f88bc58

Browse files
Merge pull request #2066 from redis/DOC-5671-php-sets-example
DOC-5671 added PHP sets examples
2 parents 91e9c02 + 68fa0b8 commit f88bc58

File tree

1 file changed

+186
-0
lines changed

1 file changed

+186
-0
lines changed

local_examples/php/DtSetsTest.php

Lines changed: 186 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,186 @@
1+
// EXAMPLE: sets_tutorial
2+
<?php
3+
4+
require 'vendor/autoload.php';
5+
6+
use Predis\Client as PredisClient;
7+
8+
class DtSetsTest
9+
// REMOVE_START
10+
extends PredisTestCase
11+
// REMOVE_END
12+
{
13+
public function testDtSet() {
14+
$r = new PredisClient([
15+
'scheme' => 'tcp',
16+
'host' => '127.0.0.1',
17+
'port' => 6379,
18+
'password' => '',
19+
'database' => 0,
20+
]);
21+
// REMOVE_START
22+
$r->flushall();
23+
// REMOVE_END
24+
25+
// STEP_START sadd
26+
$res1 = $r->sadd('bikes:racing:france', ['bike:1']);
27+
echo $res1 . PHP_EOL;
28+
// >>> 1
29+
30+
$res2 = $r->sadd('bikes:racing:france', ['bike:1']);
31+
echo $res2 . PHP_EOL;
32+
// >>> 0
33+
34+
$res3 = $r->sadd('bikes:racing:france', ['bike:2', 'bike:3']);
35+
echo $res3 . PHP_EOL;
36+
// >>> 2
37+
38+
$res4 = $r->sadd('bikes:racing:usa', ['bike:1', 'bike:4']);
39+
echo $res4 . PHP_EOL;
40+
// >>> 2
41+
// STEP_END
42+
// REMOVE_START
43+
$this->assertEquals(1, $res1);
44+
$this->assertEquals(0, $res2);
45+
$this->assertEquals(2, $res3);
46+
$this->assertEquals(2, $res4);
47+
// REMOVE_END
48+
49+
// STEP_START sismember
50+
$res5 = $r->sismember('bikes:racing:usa', 'bike:1');
51+
echo $res5 . PHP_EOL;
52+
// >>> 1
53+
54+
$res6 = $r->sismember('bikes:racing:usa', 'bike:2');
55+
echo $res6 . PHP_EOL;
56+
// >>> 0
57+
// STEP_END
58+
// REMOVE_START
59+
$this->assertEquals(1, $res5);
60+
$this->assertEquals(0, $res6);
61+
// REMOVE_END
62+
63+
// STEP_START sinter
64+
$res7 = $r->sinter(['bikes:racing:france', 'bikes:racing:usa']);
65+
echo json_encode($res7) . PHP_EOL;
66+
// >>> ["bike:1"]
67+
// STEP_END
68+
// REMOVE_START
69+
$this->assertEquals(['bike:1'], $res7);
70+
// REMOVE_END
71+
72+
// STEP_START scard
73+
$res8 = $r->scard('bikes:racing:france');
74+
echo $res8 . PHP_EOL;
75+
// >>> 3
76+
// STEP_END
77+
// REMOVE_START
78+
$this->assertEquals(3, $res8);
79+
$r->del('bikes:racing:france');
80+
$r->del('bikes:racing:usa');
81+
// REMOVE_END
82+
83+
// STEP_START sadd_smembers
84+
$res9 = $r->sadd('bikes:racing:france', ['bike:1', 'bike:2', 'bike:3']);
85+
echo $res9 . PHP_EOL;
86+
// >>> 3
87+
88+
$res10 = $r->smembers('bikes:racing:france');
89+
sort($res10);
90+
echo json_encode($res10) . PHP_EOL;
91+
// >>> ["bike:1","bike:2","bike:3"]
92+
// STEP_END
93+
// REMOVE_START
94+
$this->assertEquals(3, $res9);
95+
$this->assertEquals(['bike:1', 'bike:2', 'bike:3'], $res10);
96+
// REMOVE_END
97+
98+
// STEP_START smismember
99+
$res11 = $r->sismember('bikes:racing:france', 'bike:1');
100+
echo $res11 . PHP_EOL;
101+
// >>> 1
102+
103+
$res12 = $r->smismember('bikes:racing:france', 'bike:2', 'bike:3', 'bike:4');
104+
echo json_encode($res12) . PHP_EOL;
105+
// >>> [1,1,0]
106+
// STEP_END
107+
// REMOVE_START
108+
$this->assertEquals(1, $res11);
109+
$this->assertEquals([1, 1, 0], $res12);
110+
// REMOVE_END;
111+
112+
// STEP_START sdiff
113+
$r->sadd('bikes:racing:france', ['bike:1', 'bike:2', 'bike:3']);
114+
$r->sadd('bikes:racing:usa', ['bike:1', 'bike:4']);
115+
116+
$res13 = $r->sdiff(['bikes:racing:france', 'bikes:racing:usa']);
117+
sort($res13);
118+
echo json_encode($res13) . PHP_EOL;
119+
// >>> ["bike:2","bike:3"]
120+
// STEP_END
121+
// REMOVE_START
122+
$this->assertEquals(['bike:2', 'bike:3'], $res13);
123+
// REMOVE_END
124+
125+
// STEP_START multisets
126+
$r->sadd('bikes:racing:france', ['bike:1', 'bike:2', 'bike:3']);
127+
$r->sadd('bikes:racing:usa', ['bike:1', 'bike:4']);
128+
$r->sadd('bikes:racing:italy', ['bike:1', 'bike:2', 'bike:3', 'bike:4']);
129+
130+
$res14 = $r->sinter(['bikes:racing:france', 'bikes:racing:usa', 'bikes:racing:italy']);
131+
echo json_encode($res14) . PHP_EOL;
132+
// >>> ["bike:1"]
133+
134+
$res15 = $r->sunion(['bikes:racing:france', 'bikes:racing:usa', 'bikes:racing:italy']);
135+
sort($res15);
136+
echo json_encode($res15) . PHP_EOL;
137+
// >>> ["bike:1","bike:2","bike:3","bike:4"]
138+
139+
$res16 = $r->sdiff(['bikes:racing:france', 'bikes:racing:usa', 'bikes:racing:italy']);
140+
echo json_encode($res16) . PHP_EOL;
141+
// >>> []
142+
143+
$res17 = $r->sdiff(['bikes:racing:usa', 'bikes:racing:france']);
144+
echo json_encode($res17) . PHP_EOL;
145+
// >>> ["bike:4"]
146+
147+
$res18 = $r->sdiff(['bikes:racing:france', 'bikes:racing:usa']);
148+
sort($res18);
149+
echo json_encode($res18) . PHP_EOL;
150+
// >>> ["bike:2","bike:3"]
151+
// STEP_END
152+
// REMOVE_START
153+
$this->assertEquals(['bike:1'], $res14);
154+
$this->assertEquals(['bike:1', 'bike:2', 'bike:3', 'bike:4'], $res15);
155+
$this->assertEquals([], $res16);
156+
$this->assertEquals(['bike:4'], $res17);
157+
$this->assertEquals(['bike:2', 'bike:3'], $res18);
158+
// REMOVE_END
159+
160+
// STEP_START srem
161+
$r->sadd('bikes:racing:france', ['bike:1', 'bike:2', 'bike:3', 'bike:4', 'bike:5']);
162+
163+
$res19 = $r->srem('bikes:racing:france', ['bike:1']);
164+
echo $res19 . PHP_EOL;
165+
// >>> 1
166+
167+
$res20 = $r->spop('bikes:racing:france');
168+
echo $res20 . PHP_EOL;
169+
// >>> bike:3 (for example)
170+
171+
$res21 = $r->smembers('bikes:racing:france');
172+
sort($res21);
173+
echo json_encode($res21) . PHP_EOL;
174+
// >>> ["bike:2","bike:4","bike:5"]
175+
176+
$res22 = $r->srandmember('bikes:racing:france');
177+
echo $res22 . PHP_EOL;
178+
// >>> bike:4 (for example)
179+
180+
// STEP_END
181+
// REMOVE_START
182+
$this->assertEquals(1, $res19);
183+
// Other sample outputs are non-deterministic.
184+
// REMOVE_END
185+
}
186+
}

0 commit comments

Comments
 (0)