Redis List操作

devtools/2024/12/22 20:02:31/

Redis List操作

1、lPush

在名称为key的list左边(头)添加一个值为value的 元素

$redis->lPush(key, value);

2、rPush

在名称为key的list右边(尾)添加一个值为value的 元素

$redis->rPush(key, value);

3、lPushx/rPushx

在名称为key的list左边(头)/右边(尾)添加一个值为value的元素,如果value已经存在,则不添加

$redis->lPushx(key, value);

4、lPop/rPop

输出名称为key的list左(头)起/右(尾)起的第一个元素,删除该元素

$redis->lPop('key');

5、blPop/brPop

lpop命令的block版本。即当timeout为0时,若遇到名称为key i的list不存在或该list为空,则命令结束。如果timeout>0,则遇到上述情况时,等待timeout秒,如果问题没有解决,则对keyi+1开始的list执行pop操作

$redis->blPop('key1', 'key2', 10);

6、lSize

返回名称为key的list有多少个元素

$redis->lSize('key');

7、lIndex, lGet

返回名称为key的list中index位置的元素

$redis->lGet('key', 0);

8、lSet

给名称为key的list中index位置的元素赋值为value

$redis->lSet('key', 0, 'X');

9、lRange, lGetRange

返回名称为key的list中start至end之间的元素(end为 -1 ,返回所有)

$redis->lRange('key1', 0, -1);

listTrim_57">10、lTrim, listTrim

截取名称为key的list,保留start至end之间的元素

$redis->lTrim('key', start, end);

11、lRem, lRemove

删除count个名称为key的list中值为value的元素。count为0,删除所有值为value的元素,count>0从头至尾删除count个值为value的元素,count<0从尾到头删除|count|个值为value的元素

$redis->lRem('key', 'A', 2);

12、lInsert

在名称为为key的list中,找到值为pivot 的value,并根据参数Redis::BEFORE | Redis::AFTER,来确定,newvalue 是放在 pivot 的前面,或者后面。如果key不存在,不会插入,如果 pivot不存在,return -1

$redis->delete('key1'); 
$redis->lInsert('key1', Redis::AFTER, 'A', 'X'); 
$redis->lPush('key1', 'A'); $redis->lPush('key1', 'B'); 
$redis->lPush('key1', 'C'); 
$redis->lInsert('key1', Redis::BEFORE, 'C', 'X');
$redis->lRange('key1', 0, -1);
$redis->lInsert('key1', Redis::AFTER, 'C', 'Y');
$redis->lRange('key1', 0, -1);
$redis->lInsert('key1', Redis::AFTER, 'W', 'value');

13、rpoplpush

返回并删除名称为srckey的list的尾元素,并将该元素添加到名称为dstkey的list的头部

$redis->delete('x', 'y');
$redis->lPush('x', 'abc'); 
$redis->lPush('x', 'def'); 
$redis->lPush('y', '123'); 
$redis->lPush('y', '456'); // move the last of x to the front of y. var_dump($redis->rpoplpush('x', 'y'));
var_dump($redis->lRange('x', 0, -1));
var_dump($redis->lRange('y', 0, -1)); string(3) "abc" 
array(1) { [0]=> string(3) "def" } 
array(3) { [0]=> string(3) "abc" [1]=> string(3) "456" [2]=> string(3) "123" }

http://www.ppmy.cn/devtools/144462.html

相关文章

前端数据持久化指南:LocalStorage、SessionStorage 等的区别与应用

一、引言 在前端开发中&#xff0c;数据持久化是一个至关重要的需求。它能够确保用户在不同页面切换、刷新页面或者关闭浏览器后&#xff0c;数据仍然能够被保存和恢复。本文将详细介绍几种实现前端数据持久化的方法&#xff0c;并深入分析它们之间的区别。 二、实现前端数据…

C# OpenCV机器视觉:图像分割(让照片中的物体各自“安家”!)

在一个无聊的周末&#xff0c;阿强决定去参加一个朋友的聚会。他兴奋地准备好相机&#xff0c;想要记录下这次难忘的时刻。然而&#xff0c;当他查看自己拍的照片时&#xff0c;发现每张照片都像是一幅混乱的拼图&#xff0c;物体之间的界限模糊不清&#xff0c;仿佛所有的东西…

java中带缓存的输入/输出流

1、介绍 缓存时I/O的一种性能优化。缓存流为I/O流增加了内存缓存区。有了缓存区&#xff0c;使得在流上执行skip()、mark()、reset()方法都成为可能。 2、BufferedInputStream与BufferedOutputStream类 BufferedInputStream类可以对所有InputStream类进行带缓存区的包装以达…

gitee给DeployKey添加push权限

git执行push操作&#xff0c;将本地修改推送到gitee远程仓库时&#xff0c;报错&#xff1a; error: src refspec master does not match any error: failed to push some refs to gitee.com:XXX/XXX.git进一步执行以下强制推送命令&#xff1a; $ git push --set-upstream o…

Facebook 与数字社交的未来走向

随着数字技术的飞速发展&#xff0c;社交平台的角色和形式也在不断演变。作为全球最大社交平台之一&#xff0c;Facebook&#xff08;现Meta&#xff09;在推动数字社交的进程中扮演了至关重要的角色。然而&#xff0c;随着互联网的去中心化趋势和新技术的崛起&#xff0c;Face…

React简单了解

原理简化了解 import React from "react" import { createRoot } form "react-dom/client"const element React.createElement(p,{id: hello},Hello World! )const container document.querySelector(#root) const root createRoot(container) root.r…

代码随想录刷题-数组

文章目录 1.二分查找1.答案2.思路3.扩展题目1.搜索插入位置1.答案2.思路 2.在排序数组中查找元素的第一个和最后一个位置1.答案2.思路 3.x 的平方根1.答案2.思路 4.有效的完全平方数1.答案2.思路 4.总结1.标准二分模板 2.移除元素1.答案2.思路3.扩展题目1.删除有序数组中的重复…

深入理解STL list erase

1、list erase后&#xff0c;当前的迭代器失效&#xff0c;返回指向下一个节点的迭代器 #include<list> #include<iostream> #include<vector> using namespace std;int main() {list<int> ls;ls.push_back(1);ls.push_back(2);ls.push_back(3);list&…