Skip to content

Commit f6f19e1

Browse files
Merge pull request #2067 from redis/DOC-5672-php-sorted-sets-examples
DOC-5672 added PHP sorted sets examples
2 parents f88bc58 + 5354e54 commit f6f19e1

File tree

1 file changed

+175
-0
lines changed

1 file changed

+175
-0
lines changed
Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
// EXAMPLE: ss_tutorial
2+
<?php
3+
4+
require 'vendor/autoload.php';
5+
6+
use Predis\Client as PredisClient;
7+
8+
class DtSortedSetsTest
9+
// REMOVE_START
10+
extends PredisTestCase
11+
// REMOVE_END
12+
{
13+
public function testDtSortedSet() {
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 zadd
26+
$res1 = $r->zadd('racer_scores', ['Norem' => 10]);
27+
echo $res1 . PHP_EOL;
28+
// >>> 1
29+
30+
$res2 = $r->zadd('racer_scores', ['Castilla' => 12]);
31+
echo $res2 . PHP_EOL;
32+
// >>> 1
33+
34+
$res3 = $r->zadd('racer_scores', [
35+
'Sam-Bodden' => 8,
36+
'Royce' => 10,
37+
'Ford' => 6,
38+
'Prickett' => 14,
39+
'Castilla' => 12,
40+
]);
41+
echo $res3 . PHP_EOL;
42+
// >>> 4
43+
// STEP_END
44+
// REMOVE_START
45+
$this->assertEquals(1, $res1);
46+
$this->assertEquals(1, $res2);
47+
$this->assertEquals(4, $res3);
48+
// REMOVE_END
49+
50+
// STEP_START zrange
51+
$res4 = $r->zrange('racer_scores', 0, -1);
52+
echo json_encode($res4) . PHP_EOL;
53+
// >>> ["Ford","Sam-Bodden","Norem","Royce","Castilla","Prickett"]
54+
55+
$res5 = $r->zrevrange('racer_scores', 0, -1);
56+
echo json_encode($res5) . PHP_EOL;
57+
// >>> ["Prickett","Castilla","Royce","Norem","Sam-Bodden","Ford"]
58+
// STEP_END
59+
// REMOVE_START
60+
$this->assertEquals(['Ford', 'Sam-Bodden', 'Norem', 'Royce', 'Castilla', 'Prickett'], $res4);
61+
$this->assertEquals(['Prickett', 'Castilla', 'Royce', 'Norem', 'Sam-Bodden', 'Ford'], $res5);
62+
// REMOVE_END
63+
64+
// STEP_START zrange_withscores
65+
$res6 = $r->zrange('racer_scores', 0, -1,[
66+
'withscores' => true,
67+
]);
68+
echo json_encode($res6) . PHP_EOL;
69+
// >>> {"Ford":"6","Sam-Bodden":"8","Norem":"10","Royce":"10","Castilla":"12","Prickett":"14"}
70+
// STEP_END
71+
// REMOVE_START
72+
$this->assertEquals(
73+
['Ford' => 6, 'Sam-Bodden' => 8, 'Norem' => 10, 'Royce' => 10, 'Castilla' => 12, 'Prickett' => 14],
74+
$res6
75+
);
76+
// REMOVE_END
77+
78+
// STEP_START zrangebyscore
79+
$res7 = $r->zrangebyscore('racer_scores', '-inf', 10);
80+
echo json_encode($res7) . PHP_EOL;
81+
// >>> ["Ford","Sam-Bodden","Norem","Royce"]
82+
// STEP_END
83+
// REMOVE_START
84+
$this->assertEquals(['Ford', 'Sam-Bodden', 'Norem', 'Royce'], $res7);
85+
// REMOVE_END
86+
87+
// STEP_START zremrangebyscore
88+
$res8 = $r->zrem('racer_scores', 'Castilla');
89+
echo $res8 . PHP_EOL;
90+
// >>> 1
91+
92+
$res9 = $r->zremrangebyscore('racer_scores', '-inf', 9);
93+
echo $res9 . PHP_EOL;
94+
// >>> 2
95+
96+
$res10 = $r->zrange('racer_scores', 0, -1);
97+
echo json_encode($res10) . PHP_EOL;
98+
// >>> ["Norem","Royce","Prickett"]
99+
// STEP_END
100+
// REMOVE_START
101+
$this->assertEquals(1, $res8);
102+
$this->assertEquals(2, $res9);
103+
$this->assertEquals(['Norem', 'Royce', 'Prickett'], $res10);
104+
// REMOVE_END
105+
106+
// STEP_START zrank
107+
$res11 = $r->zrank('racer_scores', 'Norem');
108+
echo $res11 . PHP_EOL;
109+
// >>> 0
110+
111+
$res12 = $r->zrevrank('racer_scores', 'Norem');
112+
echo $res12 . PHP_EOL;
113+
// >>> 2
114+
// STEP_END
115+
// REMOVE_START
116+
$this->assertEquals(0, $res11);
117+
$this->assertEquals(2, $res12);
118+
// REMOVE_END
119+
120+
// STEP_START zadd_lex
121+
$res13 = $r->zadd('racer_scores', [
122+
'Norem' => 0,
123+
'Sam-Bodden' => 0,
124+
'Royce' => 0,
125+
'Ford' => 0,
126+
'Prickett' => 0,
127+
'Castilla' => 0,
128+
]);
129+
echo $res13 . PHP_EOL;
130+
// >>> 3
131+
132+
$res14 = $r->zrange('racer_scores', 0, -1);
133+
echo json_encode($res14) . PHP_EOL;
134+
// >>> ["Castilla","Ford","Norem","Prickett","Royce","Sam-Bodden"]
135+
136+
$res15 = $r->zrangebylex('racer_scores', '[A', '[L');
137+
echo json_encode($res15) . PHP_EOL;
138+
// >>> ["Castilla","Ford"]
139+
// STEP_END
140+
// REMOVE_START
141+
$this->assertEquals(3, $res13);
142+
$this->assertEquals(['Castilla', 'Ford', 'Norem', 'Prickett', 'Royce', 'Sam-Bodden'], $res14);
143+
$this->assertEquals(['Castilla', 'Ford'], $res15);
144+
// REMOVE_END
145+
146+
// STEP_START leaderboard
147+
$res16 = $r->zadd('racer_scores', ['Wood' => 100]);
148+
echo $res16 . PHP_EOL;
149+
// >>> 1
150+
151+
$res17 = $r->zadd('racer_scores', ['Henshaw' => 100]);
152+
echo $res17 . PHP_EOL;
153+
// >>> 1
154+
155+
$res18 = $r->zadd('racer_scores', ['Henshaw' => 150]);
156+
echo $res18 . PHP_EOL;
157+
// >>> 0
158+
159+
$res19 = $r->zincrby('racer_scores', 50, 'Wood');
160+
echo $res19 . PHP_EOL;
161+
// >>> 150
162+
163+
$res20 = $r->zincrby('racer_scores', 50, 'Henshaw');
164+
echo $res20 . PHP_EOL;
165+
// >>> 200
166+
// STEP_END
167+
// REMOVE_START
168+
$this->assertEquals(1, $res16);
169+
$this->assertEquals(1, $res17);
170+
$this->assertEquals(0, $res18);
171+
$this->assertEquals(150, $res19);
172+
$this->assertEquals(200, $res20);
173+
// REMOVE_END
174+
}
175+
}

0 commit comments

Comments
 (0)