加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP编程:php-redis中的sort排序函数总结

发布时间:2020-12-13 02:44:30 所属栏目:PHP教程 来源:网络整理
导读:《php-redis中的sort排序函数总结》要点: 本文介绍了php-redis中的sort排序函数总结,希望对您有用。如果有疑问,可以联系我们。 PHP教程 很多人把redis当成一种数据库,其实是利用redis来构造数据库的模型,有那种数据库的味道.但是在怎么构建还是key和value

《php-redis中的sort排序函数总结》要点:
本文介绍了php-redis中的sort排序函数总结,希望对您有用。如果有疑问,可以联系我们。

PHP教程很多人把redis当成一种数据库,其实是利用redis来构造数据库的模型,有那种数据库的味道.但是在怎么构建还是key和value的关系,与真正的关系型数据库还是纷歧样的.

PHP教程效率高,不便利;便利的,效率不高;又便利,效率又高的要花钱.

PHP教程php-redis里面的sort函数,在做web的时候取数据还是比拟方便,有点关系型数据库的味道.在说sort前,先说一下前面漏的几个比拟常用的函数.

PHP教程?1) keys

PHP教程描述:查找符合给定模式的key
参数:匹配模式
返回值:符合给定模式的key列表

PHP教程2) mset

PHP教程描述:同时设置一个或多个key-value对.当发现同名的key存在时,MSET会用新值覆盖旧值,如果你不希望覆盖同名key,请使用MSETNX命令.MSET是一个原子性(atomic)操作,所有给定key都在同一时间内被设置,某些给定key被更新而另一些给定key没有改变的情况,弗成能发生.
参数:数组
返回值:总是返回OK(因为MSET弗成能失败)

PHP教程3) mget

PHP教程描述:返回所有(一个或多个)给定key的值.如果某个指定key不存在,那么返回特殊值nil.因此,该命令永不失败.
参数:key的数组
返回值:一个包括所有给定key的值的列表

PHP教程示例:

代码如下:

<?php?
??? $redis = new redis();?
??? $redis->connect('192.168.1.108',6379);?
??? $redis->flushall();??
??????
??? $array=array('tank'=>'1',?
????????????? 'zhang'=>'2',?
????????????? 'ying'=>'3',?
????????????? 'test'=>'4');?
??? $redis->mset($array);?
??? print_r($redis->keys('*s*'));??????? // 成果:Array ( [0] => test )?
??? print_r($redis->keys('y???'));?????? // 成果:Array ( [0] => ying )?
??? print_r($redis->keys('t[e]*'));? // 成果:Array ( [0] => test )?
??? print_r($redis->keys('*'));????? // 成果:Array ( [0] => ying [1] => test [2] => zhang [3] => tank )??
??????
??? print_r($redis->mget(array("tank","ying")));???? // 成果:Array ( [0] => 1 [1] => 3 )?
?>

PHP教程4) sort

PHP教程描述:按条件取得数据
参数:

代码如下:

array(
??? 'by' => 'pattern',//匹配模式
??? 'limit' => array(0,1),
??? 'get' => 'pattern'
??? 'sort' => 'asc' or 'desc',
??? 'alpha' => TRUE,
??? 'store' => 'external-key'
)

返回或保留给定列表、集合、有序集合key中经过排序的元素.

PHP教程一般排序

代码如下:

<?php?
??? $redis = new redis();?
??? $redis->connect('192.168.1.108',6379);?
??? $redis->flushall();?
??? $redis->lpush('test',1);?
??? $redis->lpush('test',10);?
??? $redis->lpush('test',8);?
??????
??? print_r($redis->sort('test')); //成果:Array ( [0] => 1 [1] => 8 [2] => 10 )?
?>

PHP教程字母排序

代码如下:

<?php?
??? $redis = new redis();?
??? $redis->connect('192.168.1.108','a');?
??? $redis->lpush('test','d');?
??? $redis->lpush('test','b');?
??????
??? print_r($redis->sort('test')); //结果:Array ( [0] => b [1] => d [2] => a )?
??? print_r($redis->sort('test',array('ALPHA'=>TRUE))); //结果:Array ( [0] => a [1] => b [2] => d )?
?>
?

PHP教程排序取部门数据

代码如下:

<?php?
??? $redis = new redis();?
??? $redis->connect('192.168.1.108',31);?
??? $redis->lpush('test',5);?
??? $redis->lpush('test',2);?
??? $redis->lpush('test',23);???
??????
??? $array = array('LIMIT'=>array(0,3),"SORT"=>'DESC');?
??? print_r($redis->sort('test',$array));? //成果:Array ( [0] => 31 [1] => 23 [2] => 5 )?
?>

PHP教程使用外部key进行排序

PHP教程有时候你会希望使用外部的key作为权重来比较元素,代替默认的对比办法.

PHP教程假设现在有用户(user)表数据如下:

代码如下:

id   ? name    score?
-------------------------------?
1     tank   ?? 89?
2     zhang   ? 40?
4  ???? ying    ? 70?
3   ?? fXXK   ??? 90

PHP教程id数据保留在key名为id的列表中.
name数据保留在key名为name_{id}的列表中
score数据保留在score_{id}的key中.

代码如下:

<?php?
??? $redis = new redis();?
??? $redis->connect('192.168.1.108',6379);?
??? $redis->flushall();??
??????
??? $redis->lpush('id',1);?
??? $redis->set('name_1','tank');?
??? $redis->set('score_1',89);?
??????
??? $redis->lpush('id',2);?
??? $redis->set('name_2','zhang');?
??? $redis->set('score_2',40);?
??????
??? $redis->lpush('id',4);?
??? $redis->set('name_4','ying');?
??? $redis->set('score_4',70);?
??????
??? $redis->lpush('id',3);?
??? $redis->set('name_3','fXXK');?
??? $redis->set('score_3',90);?
??????
??? /**
???? * 按score从大到小排序,取得id
???? */
??? $sort=array('BY'=>'score_*',?
??????????????? 'SORT'=>'DESC'
??????????????? );?
??? print_r($redis->sort('id',$sort)); //成果:Array ( [0] => 3 [1] => 1 [2] => 4 [3] => 2 )??
??????
??? /**
???? * 按score从大到小排序,取得name
???? */
??? $sort=array('BY'=>'score_*',?
??????????????? 'SORT'=>'DESC',?
??????????????? 'GET'=>'name_*'
??????????????? );?
??? print_r($redis->sort('id',$sort)); //成果:Array ( [0] => fXXK [1] => tank [2] => ying [3] => zhang )???
??????
??? /**
???? * 按score从小到大排序,取得name,score
???? */
??? $sort=array('BY'=>'score_*',?
??????????????? 'GET'=>array('name_*','score_*')?
??????????????? );?
??? print_r($redis->sort('id',$sort));?
??? /**
???? *成果:Array
??????????? (
??????????????? [0] => fXXK
??????????????? [1] => 90
??????????????? [2] => tank
??????????????? [3] => 89
??????????????? [4] => ying
??????????????? [5] => 70
??????????????? [6] => zhang
??????????????? [7] => 40
??????????? ))
???? */
??????
??? /**
???? * 按score从小到大排序,取得id,name,?
??????????????? 'GET'=>array('#','name_*',$sort));?
??? /**
???? * 成果:Array
??????????? (
??????????????? [0] => 3
??????????????? [1] => fXXK
??????????????? [2] => 90
??????????????? [3] => 1
??????????????? [4] => tank
??????????????? [5] => 89
??????????????? [6] => 4
??????????????? [7] => ying
??????????????? [8] => 70
??????????????? [9] => 2
??????????????? [10] => zhang
??????????????? [11] => 40
??????????? )
???? */
?>

《php-redis中的sort排序函数总结》是否对您有启发,欢迎查看更多与《php-redis中的sort排序函数总结》相关教程,学精学透。编程之家 52php.cn为您提供精彩教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读