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