列表
list 主要是用来干嘛的
列表内元素可重复
部分命令
-
lpush key value1 [value2]
:将一个或多个值插入到列表头部 -
lpushx key value
:将一个值插入到已存在
的列表头部,返回列表长度 -
rpush key value
:将一个或多个值插入到列表尾部,返回列表长度 -
rpushx key value
:将一个或多个值插入到已存在
列表尾部,返回列表长度 -
lset key index value
:通过索引设置列表元素的值,索引从 0 开始 -
llen key
:返回当前列表长度,无则返回 0 -
lrange key start end
:返回队列中一个区间的元素,(key 0 -1)表示返回所有元素 -
lindex key index
:通过索引获取列表中的元素 -
lpop key
:移出并获取列表的第一个元素 -
rpop key
:移出并获取列表的最后一个元素 -
blpop key1 timeout
:移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止 -
brpop key1 timeout
:移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止 -
rpoplpush
:从一个队列中 pop 出元素并 push 到另一个队列,也可以是同一个队列 -
lrem key count value
:删除队列中左起指定数量的字符,$data = Redis::lrem($list, 1, 'yuanyuan');// 删除队列中左起(右起 count < 0) 1个值为(count = 0 移除表中所有与 VALUE 相等的值) 'yuanyuan'的元素(若有)
-
ltrim key start end
:保留左边起若干元素,其余删除,$data = Redis::ltrim($list, 1, 6);// 保留左边起第 1 个至第 6 个元素
-
linsert key before|after pivot value
:在列表的元素前或者后插入元素,$data = Redis::linsert('list2', 'before', 'ab1', '123');//表示在元素 'ab1' 之前插入 '123'
表格
命令 | 说明 |
---|---|
lpush key value1 [value2] |
将一个或多个值插入到列表头部 |
lpushx key value |
将一个值插入到已存在 的列表头部,返回列表长度 |
rpush key value |
将一个或多个值插入到列表尾部,返回列表长度 |
rpushx key value |
将一个或多个值插入到已存在 列表尾部,返回列表长度 |
lset key index value |
通过索引设置列表元素的值,索引从 0 开始 |
llen key |
返回当前列表长度,无则返回 0 |
lrange key start end |
返回队列中一个区间的元素,(key 0 -1)表示返回所有元素 |
lindex key index |
通过索引获取列表中的元素 |
lpop key |
移出并获取列表的第一个元素 |
rpop key |
移出并获取列表的最后一个元素 |
blpop key1 timeout |
移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止 |
brpop key1 timeout |
移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止 |
rpoplpush |
从一个队列中 pop 出元素并 push 到另一个队列,也可以是同一个队列 |
lrem key count value |
删除队列中左起指定数量的字符,$data = Redis::lrem($list, 1, 'yuanyuan');// 删除队列中左起(右起 count < 0) 1个值为(count = 0 移除表中所有与 VALUE 相等的值) 'yuanyuan'的元素(若有) |
ltrim key start end |
保留左边起若干元素,其余删除,$data = Redis::ltrim($list, 1, 6);// 保留左边起第 1 个至第 6 个元素 |
linsert key (before、after) pivot value |
在列表的元素前或者后插入元素,$data = Redis::linsert('list2', 'before', 'ab1', '123');//表示在元素 'ab1' 之前插入 '123' |
部分代码展示
// 从一个队列中 pop 出元素并 push 到另一个队列
// Redis::rpush('list1','ab0');
// Redis::rpush('list1','ab1');
// Redis::rpush('list2','ab2');
// Redis::rpush('list2','ab3');
// 返回的是 list1 pop 出来的数据
// $data = Redis::rpoplpush('list1','list2');// 结果list1 =>array('ab0'), list2 =>array('ab1','ab2','ab3')
// $data = Redis::lrange('list1', 0, -1);
// 返回的是 list2 pop 出来的数据
// $data = Redis::rpoplpush('list2','list2');// 也适用于同一个队列, 把最后一个元素移到头部 list2 =>array('ab3','ab1','ab2')
// $data = Redis::lrange('list2', 0, -1);