Redis整理(5)之数据类型list

双向链表
应用场景:在成千万条数据如果只是想取得头尾的值,那么可以使用list,复杂度是根据取得值得深度,越靠近两端速度越快
例如,获取最新的插入数据,即最新新闻。
另外拓展:可以作为数据结构栈和队列使用
lpush key value[value...]  向list左边插入一个值
rpush key value[value...]   向list右边插入一个值
lpop key list左边弹出一个值
rpop key list右边弹出一个值
llen key   list的元素个数
lrange key start stop 获得列表片段
lrem key count value  //删除掉count次值为value的元素  注意区分count的正负值
lindex key index // key['index'];
lset key index value // key['index'] = value
ltrim key start end //保留片段 start-end片段
linsert key before|after pivot value//在pivot之前之后插入值

<?php
	
	$redis->lpush('lis','one','two','three');
	 print $redis->llen('lis');//获取列表长度
	 echo "<hr>";
	 print $redis->lpop('lis');//two one
	 echo "<hr>";
	 print $redis->rpop('lis');//two 

	//获取列表片段demo
	$redis->lpush('lis','one','two','three','four','five');//  five four three two one
	 print $redis->llen('lis');//获取列表长度
	 echo "<hr>";
	 echo "正索引,下标从0开始";
	 var_dump($redis->lrange('lis',0,1));// five four
	 echo "<hr>";
	 echo "负索引,下标从最右边一个元素开始开始";
	 var_dump($redis->lrange('lis',-2,-1))//two one

	//批量删除列表值
	 $redis->lpush('lis','one','two','three','four','five','one');//  five four three two one
	 $redis->lrem('lis','one',1);
	 var_dump($redis->lrange('lis',0,-1));  //打印列表所有的元素,注意观察列表元素one消失的顺序
	 echo "<hr>";
	 $redis->lrem('lis','one',1);
	 var_dump($redis->lrange('lis',0,-1));

	//下标索引index用法  查询,改值
	$redis->lpush('lis','one','two','three','four','five','one');//  five four three two one
	 print $redis->lindex('lis',1);
	 echo "<hr>";
	 $redis->lset('lis',1,'change');
	 print $redis->lindex('lis',1);

	//保存部分值
	$redis->lpush('lis','one','two','three','four','five','one');//  five four three two one
	 $redis->ltrim('lis',1,2);//只保存下标1-2的元素
	 var_dump($redis->lrange('lis',0,-1));

	//在某个指定元素前后插入
	$redis->lpush('lis','one','two','three','four','five','one');//  five four three two one
	 $redis->linsert('lis','BEFORE','two','value');
	 var_dump($redis->lrange('lis',0,-1));





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值