亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

php-redis中的sort排序函數總結

2024-09-04 11:42:36
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了php-redis中的sort排序函數總結,本文講解了了按字母排序、排序取部分數據、使用外部key進行排序等排序方法,同時給出代碼實例,需要的朋友可以參考下

很多人把redis當成一種數據庫,其實是利用redis來構造數據庫的模型,有那種數據庫的味道。但是在怎么構建還是key和value的關系,與真正的關系型數據庫還是不一樣的。

效率高,不方便;方便的,效率不高;又方便,效率又高的要花錢。

php-redis里面的sort函數,在做web的時候取數據還是比較方便,有點關系型數據庫的味道。在說sort前,先說一下前面漏的幾個比較常用的函數。

1) keys

描述:查找符合給定模式的key

參數:匹配模式

返回值:符合給定模式的key列表

2) mset

描述:同時設置一個或多個key-value對。當發現同名的key存在時,MSET會用新值覆蓋舊值,如果你不希望覆蓋同名key,請使用MSETNX命令。MSET是一個原子性(atomic)操作,所有給定key都在同一時間內被設置,某些給定key被更新而另一些給定key沒有改變的情況,不可能發生。

參數:數組

返回值:總是返回OK(因為MSET不可能失敗)

3) mget

描述:返回所有(一個或多個)給定key的值。如果某個指定key不存在,那么返回特殊值nil。因此,該命令永不失敗。

參數:key的數組

返回值:一個包含所有給定key的值的列表

示例:

  1. <?php  
  2.     $redis = new redis();  
  3.     $redis->connect('192.168.1.108', 6379);  
  4.     $redis->flushall();   
  5.        
  6.     $array=array('tank'=>'1',  
  7.               'zhang'=>'2',  
  8.               'ying'=>'3',  
  9.               'test'=>'4');  
  10.     $redis->mset($array);  
  11.     print_r($redis->keys('*s*'));        // 結果:Array ( [0] => test )  
  12.     print_r($redis->keys('y???'));       // 結果:Array ( [0] => ying )  
  13.     print_r($redis->keys('t[e]*'));  // 結果:Array ( [0] => test )  
  14.     print_r($redis->keys('*'));      // 結果:Array ( [0] => ying [1] => test [2] => zhang [3] => tank )   
  15.        
  16.     print_r($redis->mget(array("tank","ying")));     // 結果:Array ( [0] => 1 [1] => 3 )  
  17. ?> 

4) sort

描述:按條件取得數據

參數:

  1. array
  2.     'by' => 'pattern'//匹配模式 
  3.     'limit' => array(0, 1), 
  4.     'get' => 'pattern' 
  5.     'sort' => 'asc' or 'desc'
  6.     'alpha' => TRUE, 
  7.     'store' => 'external-key' 

返回或保存給定列表、集合、有序集合key中經過排序的元素。

一般排序,代碼如下:

  1. <?php  
  2.     $redis = new redis();  
  3.     $redis->connect('192.168.1.108', 6379);  
  4.     $redis->flushall();  
  5.     $redis->lpush('test', 1);  
  6.     $redis->lpush('test', 10);  
  7.     $redis->lpush('test', 8);  
  8.        
  9.     print_r($redis->sort('test')); //結果:Array ( [0] => 1 [1] => 8 [2] => 10 )  
  10. ?> 

字母排序,代碼如下:

  1. <?php  
  2.     $redis = new redis();  
  3.     $redis->connect('192.168.1.108', 6379);  
  4.     $redis->flushall();  
  5.     $redis->lpush('test''a');  
  6.     $redis->lpush('test''d');  
  7.     $redis->lpush('test''b');  
  8.        
  9.     print_r($redis->sort('test')); //結果:Array ( [0] => b [1] => d [2] => a )  
  10.     print_r($redis->sort('test',array('ALPHA'=>TRUE))); //結果:Array ( [0] => a [1] => b [2] => d )  
  11. ?> 

排序取部分數據,代碼如下:

  1. <?php  
  2.     $redis = new redis();  
  3.     $redis->connect('192.168.1.108', 6379);  
  4.     $redis->flushall();  
  5.     $redis->lpush('test', 31);  
  6.     $redis->lpush('test', 5);  
  7.     $redis->lpush('test', 2);  
  8.     $redis->lpush('test', 23);    
  9.        
  10.     $array = array('LIMIT'=>array(0,3),"SORT"=>'DESC');  
  11.     print_r($redis->sort('test',$array));  //結果:Array ( [0] => 31 [1] => 23 [2] => 5 )  
  12. ?> 

使用外部key進行排序

有時候你會希望使用外部的key作為權重來比較元素,代替默認的對比方法。

假設現在有用戶(user)表數據如下:

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

id數據保存在key名為id的列表中。

name數據保存在key名為name_{id}的列表中

score數據保存在score_{id}的key中。

代碼如下:

  1. <?php  
  2.     $redis = new redis();  
  3.     $redis->connect('192.168.1.108', 6379);  
  4.     $redis->flushall();   
  5.        
  6.     $redis->lpush('id', 1);  
  7.     $redis->set('name_1''tank');  
  8.     $redis->set('score_1',89);  
  9.        
  10.     $redis->lpush('id', 2);  
  11.     $redis->set('name_2''zhang');  
  12.     $redis->set('score_2', 40);  
  13.        
  14.     $redis->lpush('id', 4);  
  15.     $redis->set('name_4','ying');  
  16.     $redis->set('score_4', 70);  
  17.        
  18.     $redis->lpush('id', 3);  
  19.     $redis->set('name_3''fXXK');  
  20.     $redis->set('score_3', 90);  
  21.        
  22.     /** 
  23.      * 按score從大到小排序,取得id 
  24.      */ 
  25.     $sort=array('BY'=>'score_*',  
  26.                 'SORT'=>'DESC' 
  27.                 );  
  28.     print_r($redis->sort('id',$sort)); //結果:Array ( [0] => 3 [1] => 1 [2] => 4 [3] => 2 )   
  29.        
  30.     /** 
  31.      * 按score從大到小排序,取得name 
  32.      */ 
  33.     $sort=array('BY'=>'score_*',  
  34.                 'SORT'=>'DESC',  
  35.                 'GET'=>'name_*' 
  36.                 );  
  37.     print_r($redis->sort('id',$sort)); //結果:Array ( [0] => fXXK [1] => tank [2] => ying [3] => zhang )    
  38.        
  39.     /** 
  40.      * 按score從小到大排序,取得name,score 
  41.      */ 
  42.     $sort=array('BY'=>'score_*',  
  43.                 'SORT'=>'DESC',  
  44.                 'GET'=>array('name_*','score_*')  
  45.                 );  
  46.     print_r($redis->sort('id',$sort));  
  47.     /** 
  48.      *結果:Array 
  49.             ( 
  50.                 [0] => fXXK 
  51.                 [1] => 90 
  52.                 [2] => tank 
  53.                 [3] => 89 
  54.                 [4] => ying 
  55.                 [5] => 70 
  56.                 [6] => zhang 
  57.                 [7] => 40 
  58.             )) 
  59.      */ 
  60.        
  61.     /** 
  62.      * 按score從小到大排序,取得id,name,score 
  63.      */ 
  64.     $sort=array('BY'=>'score_*',  
  65.                 'SORT'=>'DESC',  
  66.                 'GET'=>array('#','name_*','score_*')  
  67.                 );  
  68.     print_r($redis->sort('id',$sort));  
  69.     /** 
  70.      * 結果:Array 
  71.             ( 
  72.                 [0] => 3 
  73.                 [1] => fXXK 
  74.                 [2] => 90 
  75.                 [3] => 1 
  76.                 [4] => tank 
  77.                 [5] => 89 
  78.                 [6] => 4 
  79.                 [7] => ying 
  80.                 [8] => 70 
  81.                 [9] => 2 
  82.                 [10] => zhang 
  83.                 [11] => 40 
  84.             ) 
  85.      */ 
  86. ?>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产丝袜一区二区三区免费视频| 欧美一级在线亚洲天堂| 国产精品96久久久久久又黄又硬| 久久久久久久久中文字幕| 国产精品欧美在线| 性色av一区二区三区免费| 久久久久久亚洲精品| 欧美在线不卡区| 亚洲精品国产电影| 国产精品久久久久久超碰| 色综合久久中文字幕综合网小说| 日本精品性网站在线观看| 97**国产露脸精品国产| 3344国产精品免费看| 国产在线观看精品一区二区三区| 国产精自产拍久久久久久| 久久人体大胆视频| 国产亚洲欧美另类中文| 最近中文字幕mv在线一区二区三区四区| 国产精品久久二区| 亚洲精品日韩激情在线电影| 国产成人亚洲精品| 91久久久亚洲精品| 亚洲自拍偷拍一区| 视频直播国产精品| 91黑丝高跟在线| 亚洲人成77777在线观看网| 久久久天堂国产精品女人| 另类专区欧美制服同性| 日韩在线播放av| 久久97精品久久久久久久不卡| 成人黄色免费在线观看| 亚洲成avwww人| 精品综合久久久久久97| 国产免费一区视频观看免费| 欧美乱大交xxxxx| 亚洲自拍偷拍网址| 日韩在线视频线视频免费网站| 高清欧美性猛交xxxx| 久久久免费电影| 中文字幕亚洲国产| 亚洲福利视频久久| 国产精品久久久久77777| 国产不卡视频在线| 亚洲性日韩精品一区二区| 欧美又大粗又爽又黄大片视频| 欧美视频精品一区| 亚洲精选在线观看| 日韩欧美国产骚| 欧美日韩国产精品一区二区不卡中文| 国产欧美亚洲精品| 免费不卡欧美自拍视频| 97精品视频在线播放| 成人激情电影一区二区| 欧美日韩国产激情| 日韩在线欧美在线| 欧美日韩在线免费| 欧美尤物巨大精品爽| 一区二区亚洲精品国产| 91在线中文字幕| www.欧美视频| 91视频九色网站| 欧美激情小视频| 久久激情视频久久| 久久久亚洲网站| 久久久久中文字幕| 亚洲欧美日韩国产成人| 亚洲综合中文字幕在线观看| 日韩a**中文字幕| 日本精品视频在线观看| 欧美激情免费在线| 欧美激情在线观看| 欧美自拍大量在线观看| 亚洲欧美国产精品专区久久| 久久久久久国产三级电影| 亚洲电影免费在线观看| 国产久一一精品| 国产视频观看一区| 国产精品爱啪在线线免费观看| 一个色综合导航| 欧美日韩人人澡狠狠躁视频| 国产精品69av| 69视频在线播放| 久久影视三级福利片| 欧美高清自拍一区| 欧美精品videosex牲欧美| 久久久久日韩精品久久久男男| 日韩av片电影专区| 性欧美视频videos6一9| 精品国产区一区二区三区在线观看| 亚洲精品99999| 亚洲欧美日韩区| 国产成人av在线| 国产精品丝袜视频| 日韩免费观看av| 亚洲一区二区久久久久久久| 欧美小视频在线观看| 国产成人avxxxxx在线看| 亚洲伊人久久大香线蕉av| 九九视频直播综合网| 欧美日在线观看| 亚洲自拍高清视频网站| 国产精品678| 久久免费精品日本久久中文字幕| 精品久久久久久国产91| 国产精品黄色影片导航在线观看| 亚洲激情自拍图| 国产精品一二区| 国产日韩中文在线| 国产日韩中文字幕在线| 久久久成人精品视频| 亚洲国产成人精品电影| 韩国v欧美v日本v亚洲| 国产精品第一视频| 国产精品色悠悠| 亚洲精品有码在线| 亚洲精品日韩丝袜精品| 日本精品久久中文字幕佐佐木| 一本色道久久综合亚洲精品小说| 日韩成人av网址| 欧美日韩一区二区在线| 91精品在线观看视频| 一道本无吗dⅴd在线播放一区| 黑人巨大精品欧美一区二区一视频| 精品久久国产精品| 国产视频精品xxxx| 成人福利在线视频| 欧美成人精品三级在线观看| 国产精品久久久久久久久久| 成人免费xxxxx在线观看| 日韩国产高清污视频在线观看| 亚洲精品国产拍免费91在线| 91av在线视频观看| 国产一区二区三区丝袜| 亚洲免费av片| 欧美最猛性xxxxx(亚洲精品)| 欧美黄色免费网站| 久久伊人精品一区二区三区| 草民午夜欧美限制a级福利片| 国产精品电影久久久久电影网| 精品在线观看国产| 欧美精品九九久久| 国产精品揄拍500视频| 性色av一区二区三区| 黄色成人av网| 久热国产精品视频| 亚洲精品456在线播放狼人| 国产精品国产三级国产aⅴ9色| 一区二区三区动漫| 欧美性xxxxxxxxx| 欧美插天视频在线播放| 中文字幕成人精品久久不卡| 国模极品一区二区三区| 97不卡在线视频| 欧美精品在线观看| 俺去亚洲欧洲欧美日韩| 国产精品美女久久久久av超清| 国产成人97精品免费看片| 国产美女被下药99| 亚洲人成啪啪网站| 色噜噜亚洲精品中文字幕| 欧洲成人免费视频| 日本一区二区三区四区视频| 日韩天堂在线视频|