phpredis List

Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边) LPUSH 命令插入一个新的元素导头部, 而 RPUSH 插入一个新元素导尾部。

lInsert

在列表中元素的前面或后面插入元素。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$redis->del('l');

$redis->lPush('l', 'A');
$redis->lPush('l', 'B');

// 在 A 后面添加 a
$redis->lInsert('l', Redis::AFTER, 'A', 'a');
print_r($redis->lRange('l', 0, -1));

// 在 A 的前面添加 b
$redis->lInsert('l', Redis::BEFORE, 'A', 'b');
print_r($redis->lRange('l', 0, -1));

// 如果元素不存在,插入失败
$redis->lInsert('l', Redis::BEFORE, 'C', 'b');
print_r($redis->lRange('l', 0, -1));

lLen & lSize

获取列表的元素长度。

1
2
3
4
$redis->del('l');
$redis->lPush('l', 1);
$redis->lPush('l', 2);
echo $redis->lLen('l'); // 2

lPop

列表头部取出一个值。

1
2
3
4
5
6
$redis->del('l');
$redis->lPush('l', 1);
$redis->lPush('l', 2);
echo $redis->lGet('l', 0), PHP_EOL; // 2
echo $redis->lPop('l'), PHP_EOL; // 2
echo $redis->lGet('l', 0), PHP_EOL; // 1

lPush

列表头部插入一个值,如果列表不存在,创建。

1
2
$redis->lPush('l', 1);
$redis->lPush('l', 2);

lPushX

当列表存在时,列表头部插入一个值。

1
2
3
4
5
6
$redis->del('l');
$res = $redis->lPushX('l', 'A');
var_dump($res); // 0

$res = $redis->lPush('l', 'B');
var_dump($res); // 1

lRange

获取列表中某些元素值。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$redis->del('l');
$redis->lPush('l', 1);
$redis->lPush('l', 2);
$redis->lPush('l', 3);
$redis->lPush('l', 4);

// 获取列表全部元素
print_r($redis->lRange('l', 0, -1));

// 获取列表某几个元素
// 从 1 开始获取两个元素
print_r($redis->lRange('l', 1, 2));

// 第三个参数为负值
print_r($redis->lRange('l', 1, -2));

lSet

设置列表中存在索引的值。

1
2
3
4
5
6
$redis->del('l');
$redis->lPush('l', 1);
$redis->lPush('l', 2);
echo $redis->lGet('l', 1), PHP_EOL; // 1
$redis->lSet('l', 1, 100);
echo $redis->lGet('l', 1), PHP_EOL; // 100

lIndex & lGet

获取列表某个位置的值。

1
2
3
4
$redis->del('l');
$redis->lPush('l', 1);
$redis->lPush('l', 2);
echo $redis->lGet('l', 0); // 2

rPop

从队列的尾部删除一个元素,并返回这个元素。

1
2
3
4
5
6
7
8
$redis->del('l');
$redis->lPush('l', 'A');
$redis->lPush('l', 'B');
$redis->lPush('l', 'C');

// 当前列表的尾部元素为 A
echo $redis->rPop('l'), PHP_EOL; // A
print_r($redis->lRange('l', 0, -1));

rPush

在列表的尾部追加一个元素。

1
2
3
4
5
6
7
8
9
$redis->del('l');
$redis->lPush('l', 'A');
$redis->lPush('l', 'B');
$redis->lPush('l', 'C');

// 当前列表的尾部元素为 A
$redis->rPush('l', 'D');
// 当前列表的尾部元素为 D
print_r($redis->lRange('l', 0, -1));

rPushX

当列表存在时,在列表的尾部追加一个元素。

1
2
3
4
5
6
$redis->del('l');
$res = $redis->rPushX('l', 'F');
var_dump($res); // 0
$redis->lPush('l', 'A');
$res = $redis->rPushX('l', 'E');
print_r($redis->lRange('l', 0, -1));

rPoplPush

取出 src 列表的尾部元素插入到 des 列表的头部。

1
2
3
4
5
6
7
8
9
10
11
$redis->delete('x', 'y');

$redis->lPush('x', 'A');
$redis->lPush('x', 'B');
$redis->lPush('y', 'C');
$redis->lPush('y', 'D');


print_r($redis->rPopLPush('x', 'y'));
print_r($redis->lRange('x', 0, -1));
print_r($redis->lRange('y', 0, -1));

lRemove

从列表中移除元素。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$redis->del('l');
$redis->lPush('l', 'A');
$redis->lPush('l', 'B');
$redis->lPush('l', 'A');
$redis->lPush('l', 'B');
$redis->lPush('l', 'C');

print_r($redis->lRange('l', 0, -1));
// 删除列表中全部的 A
$redis->lRemove('l', 'A');
print_r($redis->lRange('l', 0, -1));

$redis->del('l');
$redis->lPush('l', 'A');
$redis->lPush('l', 'B');
$redis->lPush('l', 'A');
$redis->lPush('l', 'C');
// 删除列表中指定位置的 A
$redis->lRemove('l', 'A', 1);
print_r($redis->lRange('l', 0, -1));

©版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 & 作者信息

End

坚持原创技术分享,您的支持将鼓励我继续创作!
Flyertutor WeChat Pay

WeChat Pay

Flyertutor Alipay

Alipay