PHP编程:php-redis中的sort排序函数总结
《php-redis中的sort排序函数总结》要点: PHP教程很多人把redis当成一种数据库,其实是利用redis来构造数据库的模型,有那种数据库的味道.但是在怎么构建还是key和value的关系,与真正的关系型数据库还是纷歧样的. PHP教程效率高,不便利;便利的,效率不高;又便利,效率又高的要花钱. PHP教程php-redis里面的sort函数,在做web的时候取数据还是比拟方便,有点关系型数据库的味道.在说sort前,先说一下前面漏的几个比拟常用的函数. PHP教程?1) keys PHP教程描述:查找符合给定模式的key PHP教程2) mset PHP教程描述:同时设置一个或多个key-value对.当发现同名的key存在时,MSET会用新值覆盖旧值,如果你不希望覆盖同名key,请使用MSETNX命令.MSET是一个原子性(atomic)操作,所有给定key都在同一时间内被设置,某些给定key被更新而另一些给定key没有改变的情况,弗成能发生. PHP教程3) mget PHP教程描述:返回所有(一个或多个)给定key的值.如果某个指定key不存在,那么返回特殊值nil.因此,该命令永不失败. 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的列表中.
代码如下:
<?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为您提供精彩教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |