Redis 列表(List)
Redis列表是簡(jiǎn)單的字符串列表,按照插入順序排序。你可以添加一個(gè)元素到列表的頭部(左邊)或者尾部(右邊)
一個(gè)列表最多可以包含 232 - 1 個(gè)元素 (4294967295, 每個(gè)列表超過(guò)40億個(gè)元素)。
操作方法
方法列表
方法名稱 | 參數(shù) | 說(shuō)明 | 備注 |
---|---|---|---|
lPush | $key, ...$data | 將一個(gè)或多個(gè)值插入到列表頭部 | |
bLPop | $keys,$timeout | 移出并獲取$keys列表的第一個(gè)元素, 如果$keys列表沒(méi)有元素會(huì)阻塞列表直到等待超時(shí)或發(fā)現(xiàn)可彈出元素為止 | $keys可為string,也可以為一個(gè)數(shù)組 |
bRPop | $keys,$timeout | 移出并獲取$keys列表的最后一個(gè)元素, 如果$keys列表沒(méi)有元素會(huì)阻塞列表直到等待超時(shí)或發(fā)現(xiàn)可彈出元素為止。 | $keys可為string,也可以為一個(gè)數(shù)組 |
bRPopLPush | $source, $destination, $timeout | 從列表中彈出一個(gè)值,將彈出的元素插入到另外一個(gè)列表中并返回它; 如果列表沒(méi)有元素會(huì)阻塞列表直到等待超時(shí)或發(fā)現(xiàn)可彈出元素為止。 | |
rPopLPush | $source, $destination | 移除列表的最后一個(gè)元素,并將該元素添加到另一個(gè)列表并返回 | |
lIndex | $key,$index | 通過(guò)索引獲取列表中的元素 | |
lLen | $key | 獲取列表長(zhǎng)度 | |
lInsert | $key,$bool,$pivot,$value | 在列表的元素前或者后插入元素 | |
rPush | $key, ...$data | 在列表中添加一個(gè)或多個(gè)值 | |
lRange | $key,$start,$stop | 獲取列表指定范圍內(nèi)的元素 | |
lPop | $key | 移出并獲取列表的第一個(gè)元素 | |
rPop | $key | 移出并獲取列表的最后一個(gè)元素 | |
lPuShx | $key,$value | 將一個(gè)值插入到已存在的列表頭部 | |
rPuShx | $key,$value | 為已存在的列表添加值 | |
lRem | $key,$count,$value | 移除列表元素 | |
lSet | $key,$index,$value | 通過(guò)索引設(shè)置列表元素的值 | |
lTrim | $key,$start,$stop | 對(duì)一個(gè)列表進(jìn)行修剪(trim),就是說(shuō),讓列表只保留指定區(qū)間內(nèi)的元素,不在指定區(qū)間之內(nèi)的元素都將被刪除。 |
基本使用
go(function () {
$redis = new \EasySwoole\Redis\Redis(new \EasySwoole\Redis\Config\RedisConfig([
'host' => '127.0.0.1',
'port' => '6379',
'auth' => 'easyswoole',
'serialize' => \EasySwoole\Redis\Config\RedisConfig::SERIALIZE_NONE
]));;
$key = [
'listKey1',
'listKey2',
'listKey3',
];
$value = [
'a', 'b', 'c', 'd'
];
$redis->flushAll();
//測(cè)試null的時(shí)候
$data = $redis->bLPop([$key[0],$key[1]], 1);
var_dump($data);
$data = $redis->lPush($key[0], $value[0], $value[1]);
var_dump($data);
//測(cè)試null的時(shí)候
$data = $redis->bLPop([$key[1]], 1);
var_dump($data);
$data = $redis->bRPop([$key[1]], 1);
var_dump($data);
$data = $redis->bLPop([$key[0],$key[1]], 1);
var_dump($data);
$data = $redis->bRPop([$key[0],$key[1]], 1);
var_dump($data);
$redis->del($key[0]);
$redis->lPush($key[0], $value[0], $value[1]);
$data = $redis->bRPopLPush($key[0], $key[1], 1);
var_dump($data);
$redis->del($key[0]);
$redis->lPush($key[0], $value[0], $value[1]);
$data = $redis->rPopLPush($key[0], $key[1]);
var_dump($data);
$redis->del($key[0]);
$redis->lPush($key[0], $value[0], $value[1]);
$data = $redis->lIndex($key[0], 1);
var_dump($data);
$data = $redis->lLen($key[0]);
var_dump($data);
$data = $redis->lInsert($key[0], true, 'b', 'c');
var_dump($data);
$data = $redis->lInsert($key[0], true, 'd', 'c');
var_dump($data);
$redis->del($key[1]);
$data = $redis->rPush($key[1], $value[0], $value[2], $value[1]);
var_dump($data);
$data = $redis->lRange($key[1], 0, 3);
var_dump($data);
$data = $redis->lPop($key[1]);
var_dump($data);
$data = $redis->rPop($key[1]);
var_dump($data);
$data = $redis->lPuShx($key[1], 'x');
var_dump($data);
$data = $redis->rPuShx($key[1], 'z');
var_dump($data);
$redis->del($key[1]);
$redis->rPush($key[1], $value[0], $value[0], $value[0]);
$data = $redis->lRem($key[1], 1, $value[0]);
var_dump($data);
$data = $redis->lSet($key[1], 0, 'xx');
var_dump($data);
$data = $redis->lTrim($key[1], 0, 2);
var_dump($data);
});