mingalevme/predis

此包最新版本(dev-master)没有可用的许可证信息。

predis/predis 的扩展版本 — 增加了基于有序集的伪唯一列表的支持

dev-master 2017-09-29 12:56 UTC

This package is auto-updated.

Last update: 2024-09-08 01:50:24 UTC


README

predis/predis 的扩展版本 — 增加了基于有序集的伪唯一列表的支持

可用方法

  • zrpush($key, $value1, $value2 = null, .., $valueN = null): 将所有指定的值插入到存储在键 $key 的列表的末尾。
  • zlpush($key, $value1, $value2 = null, .., $valueN = null): 将所有指定的值插入到存储在键 $key 的列表的头部。
  • zlpop($key): 从键 $key 存储的列表中移除并返回第一个元素。
  • zrpop($key): 从键 $key 存储的列表中移除并返回最后一个元素。

示例

$client = new \Mingalevme\Predis\Client();

$client->del('queue');

$client->zrpush('queue', '1');
$client->zrpush('queue', '2');
$client->zrpush('queue', '3');

echo "\n\nStep 1\n";
print_r($client->zrange('queue', 0, -1));

$client->zrpush('queue', '1');
$client->zrpush('queue', '2');
$client->zrpush('queue', '3');

echo "\n\nStep 2\n";
print_r($client->zrange('queue', 0, -1));

$client->zlpush('queue', '-1');
$client->zlpush('queue', '-2');
$client->zlpush('queue', '-3');

echo "\n\nStep 3\n";
print_r($client->zrange('queue', 0, -1));

echo "\n\nStep 4\n";
$el = $client->zrpop('queue');
print_r($el);

echo "\n\nStep 5\n";
$el = $client->zlpop('queue');
print_r($el);

echo "\n\nStep 6\n";
while ($el = $client->zlpop('queue')) {
    echo "\nvalue: {$el}\n";
    echo "list: ";
    print_r($client->zrange('queue', 0, -1));
}

输出

Step 1
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)


Step 2
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)


Step 3
Array
(
    [0] => -3
    [1] => -2
    [2] => -1
    [3] => 1
    [4] => 2
    [5] => 3
)


Step 4
3

Step 5
-3

Step 6

value: -2
list: Array
(
    [0] => -1
    [1] => 1
    [2] => 2
)

value: -1
list: Array
(
    [0] => 1
    [1] => 2
)

value: 1
list: Array
(
    [0] => 2
)

value: 2
list: Array
(
)