Redis列表是简单的字符串列表,按照插入顺序排序。

一个列表最多可以包含  232-1 个元素 (4294967295, 每个列表超过40亿个元素)

插入元素在列表头部(lPush,Lpushx)

// lPush 一个或多个值插入到列表头部。key 不存在,创建一个空列表并执行操作。key 存在但不是列表类型时,返回false
$redis->lPush('page',233,234,235);
// 只能将一个值value插入到列表key的表头,列表不存在时操作无效
$redis->lPushx('page',230);

插入元素在列表尾部(rPush,rPushx)

// rPush 将一个或多个值插入到列表的尾部
$redis->rPush('page',236,237);
// rPushx 只能将一个值插入到表尾 如果列表不存在,操作无效
$redis->rPushx('page',240);

在指定位置插入新元素(lInsert)

// lInsert(list_key,position,existing_value,new_value)
// position,before/after 在现有元素前/后插入新元素
// existing_value 现有元素
// new_value 插入元素
$redis->lInsert('page','before','234','Fruits');

修改元素值(lSet)

// 通过下标修改链表元素的值,下标是从0开始 
$redis->lSet('page', 0, '调整测试');

将列表弹出的元素插入到另外一个列表中并返回它(Brpoplpush)

// Brpoplpush(list1,another_list,timeout)
// 如果列表没有元素会阻塞列表,直到等待超时或发现可弹出元素
$redis->Brpoplpush('page','page2',2);

将列表最后一个元素移除,添加到另一个列表并返回 (Rpoplpush)

// Rpoplpush(list_key,other_list_key)
$redis->Rpoplpush('page','page2');

获取元素个数(lLen)

$redis->lLen('page');

获取下标对应的元素(lIndex)

$redis->lIndex('page',2)

获取范围内元素集(lRange)

// lRange(list_key,start,end) 0表示第一个元素,-1表示最后一个元素,-2表示倒数第二个元素
// 如果 start 大于最大下标,返回一个空列表
// 如果end大于最大下标,Redis将end的值设置为最大下标
$arr = $redis->lRange('page', 0, 1); // 前两个元素
$arr = $redis->lRange('page', 0, -1); // 全部元素
$arr = $redis->lRange('page', -2, -1); // 后两个元素

移除并返回列表的第一个元素(lPop,BLpop)

// Blpop(list1,list2,timeout) 如果列表没有元素 会阻塞列表直到等待超时或发现可弹出元素为止
// lPop(key)
$redis->lPop('page');
$redis->lPop('page',5);

移除并返回列表的最一个元素(rPop,BRpop)

// BRpop(list1,list2,timeout) 如果列表没有元素 会阻塞列表直到等待超时或发现可弹出元素为止
$redis->BRpop('page',5);
// rPop(list_key)
$redis->rPop(page);

根据值移除元素(lRem)

// lRem(list_key,count,value):根据参数 count 的值,移除列表中与参数 value 相等的元素
// count > 0 从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count。
// count < 0 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值。
// count = 0 移除表中所有与 value 相等的值
$redis->lRem('page', '234', 2);

保留指定区间的元素(lTrim)

// lTrim(list_key,start,end)。列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。// 如果 start 大于列表的最大下标,将清空整个列表,返回一个空列表
// 如果 end 大于列表的最大下标,Redis将end设置为最大下标的值
$redis->lTrim('favorite_fruit',3,-1);

PHP Redis - List (列表)的更多相关文章

  1. Redis压缩列表原理与应用分析

    摘要 Redis是一款著名的key-value内存数据库软件,同时也是一款卓越的数据结构服务软件.它支持字符串.列表.哈希表.集合.有序集合五种数据结构类型,同时每种数据结构类型针对不同的应用场景又支 ...

  2. redis数据类型-列表类型

    列表类型 列表类型(list)可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素,或者获得列表的某一个片段. 列表类型内部是使用双向链表(double linked list)实现的,所以向 ...

  3. redis学习-列表(list)常用命令

    redis学习-列表(list)常用命令   lpush:从列表左侧头部添加数据 rpush:从右侧尾部添加数据 lpop:从给左侧头部取出一个元素 rpop:从右侧尾部取出一个元素 lrange:取 ...

  4. Redis 操作列表数据

    Redis 操作列表数据: > lpush list1 "aaa" // lpush 用于追加列表元素,默认追加到列表的最左侧(left) (integer) > lp ...

  5. redis rpoplpush列表转移元素

    文档出处:redisdoc.com/list/rpoplpush.html模式: 安全的队列 Redis的列表经常被用作队列(queue),用于在不同程序之间有序地交换消息(message).一个客户 ...

  6. Redis压缩列表

    此篇文章是主要介绍Redis在数据存储方面的其中一种方式,压缩列表.本文会介绍1. 压缩列表(ziplist)的使用场景 2.如何达到节约内存的效果?3.压缩列表的存储格式 4. 连锁更新的问题  5 ...

  7. Redis之列表类型命令

    Redis 列表(List) Redis列表是简单的字符串列表,按照插入顺序排序.你可以添加一个元素到列表的头部(左边)或者尾部(右边) 一个列表最多可以包含 232 - 1 个元素 (4294967 ...

  8. C#操作Redis List 列表

    /// <summary> /// Redis 列表 /// </summary> public static void Redis_List() { RedisClient ...

  9. Redis对象——列表(List)

    列表(list)类型是用来存储多个有序的字符串,列表中的每个字符串称为元素(element),一个列表最多可以存储232-1个元素.在Redis中,可以对列表两端插入(push)和弹出(pop),还可 ...

  10. 面试官:Redis中列表的内部实现方式是什么?

    在面试间里等候时,感觉这可真暖和呀,我那冰冷的出租屋还得盖两层被子才能睡着.正要把外套脱下来,我突然听到了门外的脚步声,随即门被打开,一位眉毛弯弯嘴唇红红的小姐姐走了进来,甜甜的香水味立刻钻进了我的鼻 ...

随机推荐

  1. 集群activemq重启报错java.lang.OutOfMemoryError: GC overhead limit exceeded

    最近安全部门同事说我们环境有个弱密码漏洞,activemq后台的密码不够复杂,需要改为复杂密码. 我登录了他们扫出来的url,输入admin admin,果然进来了.不得不说上一位已离职同事的安全意识 ...

  2. uniapp打包小程序运行到微信开发工具

    1.在manifest.json文件中配置AppID 2.在HBuilderX中配置微信开发者工具的安装路径. 工具->设置->运行设置 3.  在微信开发者工具中配置 设置->安全 ...

  3. 《【转载】ChatGPT创始人,给我们上的8堂课》 回复

    <[转载]ChatGPT创始人,给我们上的8堂课>           https://tieba.baidu.com/p/8276644432

  4. this指向问题大全和call,apply,bind详解

    详细笔记链接:https://www.jianshu.com/p/bc541afad6ee 函数内外作用域问题: var a = 1function f1(){ var a = 2 console.l ...

  5. 【git】2.1 获取git仓库

    资料来源 (1) https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E8%8E%B7%E5%8F%96-Git-%E4%BB%93%E5%B ...

  6. sql使用!=查询时会忽略null数据

    table_a有3条数据 column1值分别为1,0,null 那么 select * from table_a where column1!='1' 只会查到clumn1为0的数据,null的数据 ...

  7. Excel 的盒须图 离群值 Outliers

    Excel 中的盒须图 翻译自https://www.excel-easy.com/examples/box-whisker-plot.html 本示例教您如何在Excel中创建盒须图.盒须图显示了数 ...

  8. Echarts实现不均匀刻度的方法,自定义刻度(转)

    原文地址 今天突然有个我们的咨询公司找我问一个echarts问题,这个问题确实值得一解决,很有意思. 问题是这样的.数据中有很多低于100的数值,但是最高值却能达到14000. data = [93. ...

  9. idea2023最新激活方式

    激活文件下载https://wwtg.lanzouo.com/iAZ1W0kwkgpe 激活教程https://www.666bear.com/244.html

  10. 39.Feign

    Java方式配置 /**局部**/ @FeignClient(value = "user-center", /*修改(user-center)feign的日志级别*/ config ...