php redis list 长度限制,(PHP)redis List(列表)操作

/**

*

* List操作

* 列表操作

* 可理解为数组操作

* 插入、删除数据按照一定规律排列的

* 元素可重复

* 适用于队列

**///在列表头部插入一个值one,当列表不存在时自动创建一个列表,key1为列表名$redis->lpush("key1", "one");//在列表尾部插入一个值two,当列表不存在时自动创建一个列表,key1为列表名$redis->rPush("key1","two");//将一个插入已存在的列表头部,列表不存在时操作无效$redis->rPushx("key1","1");//删除列表的第一个元素并返回列表和列表的第一个元素,当key1不存在或不是列表则返回false$redis->lPop('key1');//删除列表的最后一个元素并返回列表和列表的最后一个元素,当key1不存在或不是列表则返回false$redis->rPop('key1');//删除并或取列表的第一个元素,如果没有元素则会阻塞直到等待超时$redis->blPop('asd', 10);//删除并或取列表的最后一个元素,如果没有元素则会阻塞直到等待超时$ret=$redis->brPop('asd', 10);//移除列表key1中最后一个元素,将其插入另一个列表asd头部,并返回这个元素。若源列表没有元素则返回false$redis->rpoplpush('key1', 'asd');//移除列表key1中最后一个元素,将其插入另一个列表asd头部,并返回这个元素。如果列表没有元素则会阻塞列表直到超时,超时返回false。$ret=$redis->brpoplpush('key1', 'asd', 10);//返回列表长度$redis->lLen('key1');//通过索引 (也就是下标key) 获取列表中的元素,如果没有该索引,则返回false。$redis->lindex('key1', 0);//通过索引修改列表中元素的值,如果没有该索引,则返回false。$redis->lSet('key1', 2, '1');//在列表key1中指定元素six前面或后面插入元素。若指定元素不在列表中,或列表不存在时,不执行任何操作

//Redis::AFTER插入元素后面 Redis::BEFORE插入元素前面

//返回值:插入成功返回插入后列表元素个数,若key1不存在返回0,若key1不是列表返回false$redis->lInsert('key1', Redis::BEFORE, 'one', '1');//根据第三个参数(count),删除掉相对的value

//count > 0 : 从表头开始向表尾搜索,移除与value相等的元素,数量为count。

//count < 0 : 从表尾开始向表头搜索,移除与value相等的元素,数量为count的绝对值。

//count = 0 : 移除表中所有与value相等的值。

//返回实际删除元素个数$redis->lrem('key1', '1', -2);//对一个列表进行截取,只保留指定区间 (如:下标1到10) 的元素,其他元素都删除。成功返回true。$redis->ltrim('key1', 1, 10);//获取存储的数据并输出列表下标0到5的数据

// 0为开始查询的列表里的第一个元素,-1则为最后一个元素

// 5代表查询5条数据,当5为-1时则查看所有数据,$redis->lrange("key1", 0 ,5);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 PHP 封装 Redis List 方法的示例代码: ```php class RedisList { private $redis; public function __construct($host, $port) { $this->redis = new Redis(); $this->redis->connect($host, $port); } public function lpush($key, $value) { return $this->redis->lpush($key, $value); } public function rpush($key, $value) { return $this->redis->rpush($key, $value); } public function linsertBefore($key, $pivot, $value) { return $this->redis->linsert($key, Redis::BEFORE, $pivot, $value); } public function linsertAfter($key, $pivot, $value) { return $this->redis->linsert($key, Redis::AFTER, $pivot, $value); } public function lrange($key, $start, $stop) { return $this->redis->lrange($key, $start, $stop); } } ``` 在上述代码中,我们封装了 Redis 的 lpush、rpush、linsert 和 lrange 方法。其中,linsert 方法根据插入位置分为 linsertBefore 和 linsertAfter 两个方法。在使用时,可以先实例化一个 RedisList 对象,然后调用相应的方法进行操作,例如: ```php $redisList = new RedisList('localhost', 6379); // 在 List 头部插入元素 $redisList->lpush('mylist', 'a'); // 在 List 尾部插入元素 $redisList->rpush('mylist', 'b'); // 在 List 中某个元素前插入元素 $redisList->linsertBefore('mylist', 'b', 'new'); // 获取 List 中指定范围的元素 $list = $redisList->lrange('mylist', 0, -1); print_r($list); ``` 上述代码中,我们首先实例化了一个 RedisList 对象,并使用 lpush、rpush 和 linsertBefore 方法向名为 mylistList 中插入了三个元素。然后,使用 lrange 方法获取该 List 中的所有元素,并打印输出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值