您现在的位置是:首页 > PHP框架交流PHP框架交流
yii框架中yiisoft/yii2-redis redis操作之list
上善若水2021-07-07 00:50:05【PHP框架交流】
2805人已围观
简介1.lpushhttps://redis.io/commands/lpush将所有指定的值插入存储在的列表的头部key。如果key不存在,则在执行推送操作之前将其创建为空列表。当key保存的值不
php redis常用操作list函数总结
1. lpush https://redis.io/commands/lpush
将所有指定的值插入存储在 的列表的头部key。如果key不存在,则在执行推送操作之前将其创建为空列表。当key保存的值不是列表时,将返回错误。
可以使用单个命令调用推送多个元素,只需在命令末尾指定多个参数。元素一个接一个地插入到列表的头部,从最左边的元素到最右边的元素。例如,该命令LPUSH mylist a b c将生成一个包含c第一个元素、b第二个元素和a第三个元素的列表。
$redis = \Yii::$app->redis;
$redis->lpush('test_list','list1','list2','list3');//依次插入头部 最终返回顺序为 list3 list2 list1
2. lindex https://redis.io/commands/lindex
返回index存储在 的列表中索引处的元素key。索引从零开始,因此0表示第一个元素、1第二个元素等。负索引可用于指定从列表尾部开始的元素。在这里,-1表示最后一个元素,-2表示倒数第二个等等。
当值key不是列表时,返回错误。
$redis = \Yii::$app->redis;
echo $redis->lindex('test_list',1);//第二个元素
echo $redis->lindex('test_list',-1);//最后一个元素
3.linsert https://redis.io/commands/linsert
在啥之前或之后插入元素,若元素重复则匹配到第一个元素后就插入
$redis = \Yii::$app->redis;
echo $redis->linsert('test_list','after','tttt','2333');
4.llen https://redis.io/commands/llen
获取lish元素中个数
$redis = \Yii::$app->redis;
echo $redis->llen('test_list');
5.lpop Remove and get the first element in a list. <https://redis.io/commands/lpop>
移除首个元素并返回这个元素
$redis = \Yii::$app->redis;
echo $redis->lpop('test_list');
6.lpushx Prepend a value to a list, only if the list exists. https://redis.io/commands/lpushx
插入首部 仅key存在时
$redis = \Yii::$app->redis;
echo $redis->lpushx('notexist',123);
7.lrange Get a range of elements from a list. https://redis.io/commands/lrange
获取指定区间的list元素 返回数组
$redis = \Yii::$app->redis;
$res= $redis->lrange('test_list',0,-2);
var_dump($res);
8.lrange Remove elements from a list. https://redis.io/commands/lrem
从存储在 的列表中删除第一次count出现的等于 的元素。该参数影响在以下几个方面的工作:elementkeycount
count > 0: 删除元素等于element从头到尾移动。
count < 0: 删除元素等于element从尾部移动到头部。
count = 0: 删除所有等于 的元素element。
例如,LREM list -2 “hello”将删除”hello”存储在 的列表中最后两次出现的 list。
请注意,不存在的键被视为空列表,因此当key不存在时,该命令将始终返回0
$redis = \Yii::$app->redis;
$res= $redis->lrem('test_list',-1,'list2');//删除最后一次出现的list2
var_dump($res);
9.lset Set the value of an element in a list by its index. https://redis.io/commands/lset
指定位置插入元素
$redis = \Yii::$app->redis;
$res= $redis->lset('test_list',-1,'list2');//列表末尾插入list2
10.ltrim Trim a list to the specified range. https://redis.io/commands/ltrim
截取数组指定范围
$redis = \Yii::$app->redis;
$res= $redis->ltrim('test_list',0,5);//截取列表第保留前6个元素
很赞哦! (5)
相关文章
随机图文
docker拉取镜像 missing signature key
Trying to pull repository docker.io/library/nginx … missing signature key 查看当前docker版本都显示1.13的版本,那还真十个笑话分享给大家,哪个逗笑你了
去医院体检,医生拿着我的报告单说:“幸亏你来的早啊”。吓出一声冷汗之后,医生不慌不忙:再晚点,我就下班了…… 老师问: 你约了心仪的女孩子吃晚餐,当你要去厕所时,该怎麼礼貌地说?同学A: 我去撇个尿! 老师: 这一点都不礼貌。同学B: 我去上个厕所,等等回来。老师: 嗯,这个不错,但还有更礼貌的。同学C: 容我离开一下。我去跟一个好朋友见个面。如果可以的话,我更希望今天晚上有机会介绍他给你认识ThinkPHP6.0 自动写入时间戳
系统支持自动写入创建和更新的时间戳字段(默认关闭),有两种方式配置支持。第一种方式是全局开启,在数据库配置文件中进行设置:// 开启自动写入时间戳字段'auto_timestamp&springboot博客 mysql数据库表建立
由于个人博客比较简单,前期仅快速建立几张核心的博客数据表,然后的不断完善,先完成前端博客的显示,手动插入若干条测试数据,下面来看看数据表吧!也就简单的文章表,分类表等.数据库sql下载地址:码云地址数