最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php-redis中的sort排序函數(shù)總結(jié)

 更新時(shí)間:2015年07月08日 11:10:22   投稿:junjie  
這篇文章主要介紹了php-redis中的sort排序函數(shù)總結(jié),本文講解了了按字母排序、排序取部分?jǐn)?shù)據(jù)、使用外部key進(jìn)行排序等排序方法,同時(shí)給出代碼實(shí)例,需要的朋友可以參考下

很多人把redis當(dāng)成一種數(shù)據(jù)庫,其實(shí)是利用redis來構(gòu)造數(shù)據(jù)庫的模型,有那種數(shù)據(jù)庫的味道。但是在怎么構(gòu)建還是key和value的關(guān)系,與真正的關(guān)系型數(shù)據(jù)庫還是不一樣的。

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

php-redis里面的sort函數(shù),在做web的時(shí)候取數(shù)據(jù)還是比較方便,有點(diǎn)關(guān)系型數(shù)據(jù)庫的味道。在說sort前,先說一下前面漏的幾個(gè)比較常用的函數(shù)。

 1) keys

描述:查找符合給定模式的key
參數(shù):匹配模式
返回值:符合給定模式的key列表

2) mset

描述:同時(shí)設(shè)置一個(gè)或多個(gè)key-value對(duì)。當(dāng)發(fā)現(xiàn)同名的key存在時(shí),MSET會(huì)用新值覆蓋舊值,如果你不希望覆蓋同名key,請(qǐng)使用MSETNX命令。MSET是一個(gè)原子性(atomic)操作,所有給定key都在同一時(shí)間內(nèi)被設(shè)置,某些給定key被更新而另一些給定key沒有改變的情況,不可能發(fā)生。
參數(shù):數(shù)組
返回值:總是返回OK(因?yàn)镸SET不可能失敗)

3) mget

描述:返回所有(一個(gè)或多個(gè))給定key的值。如果某個(gè)指定key不存在,那么返回特殊值nil。因此,該命令永不失敗。
參數(shù):key的數(shù)組
返回值:一個(gè)包含所有給定key的值的列表

示例:

復(fù)制代碼 代碼如下:

<?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*'));        // 結(jié)果:Array ( [0] => test ) 
    print_r($redis->keys('y???'));       // 結(jié)果:Array ( [0] => ying ) 
    print_r($redis->keys('t[e]*'));  // 結(jié)果:Array ( [0] => test ) 
    print_r($redis->keys('*'));      // 結(jié)果:Array ( [0] => ying [1] => test [2] => zhang [3] => tank )  
      
    print_r($redis->mget(array("tank","ying")));     // 結(jié)果:Array ( [0] => 1 [1] => 3 ) 
?>

4) sort

描述:按條件取得數(shù)據(jù)
參數(shù):

復(fù)制代碼 代碼如下:

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

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

一般排序

復(fù)制代碼 代碼如下:

<?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')); //結(jié)果:Array ( [0] => 1 [1] => 8 [2] => 10 ) 
?>

字母排序

復(fù)制代碼 代碼如下:

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

排序取部分?jǐn)?shù)據(jù)

復(fù)制代碼 代碼如下:

<?php 
    $redis = new redis(); 
    $redis->connect('192.168.1.108', 6379); 
    $redis->flushall(); 
    $redis->lpush('test', 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));  //結(jié)果:Array ( [0] => 31 [1] => 23 [2] => 5 ) 
?>

使用外部key進(jìn)行排序

有時(shí)候你會(huì)希望使用外部的key作為權(quán)重來比較元素,代替默認(rèn)的對(duì)比方法。

假設(shè)現(xiàn)在有用戶(user)表數(shù)據(jù)如下:

復(fù)制代碼 代碼如下:

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

id數(shù)據(jù)保存在key名為id的列表中。
name數(shù)據(jù)保存在key名為name_{id}的列表中
score數(shù)據(jù)保存在score_{id}的key中。

復(fù)制代碼 代碼如下:

<?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)); //結(jié)果: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)); //結(jié)果:Array ( [0] => fXXK [1] => tank [2] => ying [3] => zhang )   
      
    /**
     * 按score從小到大排序,取得name,score
     */
    $sort=array('BY'=>'score_*', 
                'SORT'=>'DESC', 
                'GET'=>array('name_*','score_*') 
                ); 
    print_r($redis->sort('id',$sort)); 
    /**
     *結(jié)果:Array
            (
                [0] => fXXK
                [1] => 90
                [2] => tank
                [3] => 89
                [4] => ying
                [5] => 70
                [6] => zhang
                [7] => 40
            ))
     */
      
    /**
     * 按score從小到大排序,取得id,name,score
     */
    $sort=array('BY'=>'score_*', 
                'SORT'=>'DESC', 
                'GET'=>array('#','name_*','score_*') 
                ); 
    print_r($redis->sort('id',$sort)); 
    /**
     * 結(jié)果: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
            )
     */
?>

相關(guān)文章

  • PHP實(shí)現(xiàn)基數(shù)排序的方法詳解

    PHP實(shí)現(xiàn)基數(shù)排序的方法詳解

    這篇文章主要介紹了PHP實(shí)現(xiàn)基數(shù)排序的方法,結(jié)合實(shí)例形式分析了基數(shù)排序的原理、實(shí)現(xiàn)方法與相關(guān)操作技巧,需要的朋友可以參考下
    2017-12-12
  • PHP獲取星期幾的常用方法小結(jié)

    PHP獲取星期幾的常用方法小結(jié)

    這篇文章主要介紹了PHP獲取星期幾的常用方法,結(jié)合實(shí)例形式分析了php使用date函數(shù)獲取指定日期星期幾的具體操作技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2018-12-12
  • php下批量掛馬和批量清馬代碼

    php下批量掛馬和批量清馬代碼

    批量掛馬和批量清馬程序PHP版,所以黑客工具的對(duì)立性,在黑客手里是破壞工具,在維護(hù)的站長(zhǎng)來說是修正工具。
    2011-02-02
  • linux iconv方法的使用

    linux iconv方法的使用

    使用iconv方法進(jìn)行編碼轉(zhuǎn)換。在windows平臺(tái)下面可以正常的工作(本地環(huán)境使用的win7),但是在linux環(huán)境下面iconv總是返回false(測(cè)試環(huán)境使用的linux)。
    2011-10-10
  • PHP對(duì)表單提交特殊字符的過濾和處理方法匯總

    PHP對(duì)表單提交特殊字符的過濾和處理方法匯總

    本篇文章主要是對(duì)PHP對(duì)表單提交特殊字符的過濾和處理方法進(jìn)行了總結(jié)介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助
    2014-02-02
  • PHP比較運(yùn)算符的詳細(xì)介紹

    PHP比較運(yùn)算符的詳細(xì)介紹

    運(yùn)算符是告訴編譯程序執(zhí)行特定算術(shù)或邏輯操作的符號(hào),通常與操作數(shù)一起構(gòu)成一個(gè)表達(dá)式,我們經(jīng)??吹剿鼤?huì)參與數(shù)學(xué)運(yùn)算或邏輯運(yùn)算。PHP也包涵了很多的運(yùn)算符,這篇文章詳細(xì)解讀一下其中很重要的比較運(yùn)算符。
    2015-09-09
  • PHP多線程之內(nèi)部多線程實(shí)例分析

    PHP多線程之內(nèi)部多線程實(shí)例分析

    這篇文章主要介紹了PHP多線程之內(nèi)部多線程,實(shí)例分析了php多線程的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • PHP使用array_merge重新排列數(shù)組下標(biāo)的方法

    PHP使用array_merge重新排列數(shù)組下標(biāo)的方法

    這篇文章主要介紹了PHP使用array_merge重新排列數(shù)組下標(biāo)的方法,以實(shí)例形式較為詳細(xì)的分析了array_merge的功能,及針對(duì)數(shù)組下標(biāo)進(jìn)行重新排列操作的實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2015-07-07
  • PHP 頁面編碼聲明方法詳解(header或meta)

    PHP 頁面編碼聲明方法詳解(header或meta)

    PHP 頁面編碼聲明與用header或meta實(shí)現(xiàn)PHP頁面編碼的區(qū)別
    2010-03-03
  • php封裝的連接Mysql類及用法分析

    php封裝的連接Mysql類及用法分析

    這篇文章主要介紹了php封裝的連接Mysql類及用法,基于php封裝了簡(jiǎn)單的MySQL數(shù)據(jù)庫的連接、查詢、遍歷等技巧,并附帶說明了其具體用法,需要的朋友可以參考下
    2015-12-12

最新評(píng)論

南部县| 和田市| 延安市| 巴彦县| 临武县| 金阳县| 桐梓县| 凤庆县| 剑川县| 惠州市| 富宁县| 罗定市| 咸宁市| 汝城县| 利辛县| 全南县| 左权县| 宁夏| 岗巴县| 涪陵区| 蒙阴县| 徐汇区| 阿克陶县| 淳安县| 涞水县| 三原县| 瓮安县| 建阳市| 银川市| 三台县| 突泉县| 乃东县| 介休市| 广东省| 高雄市| 河源市| 肃北| 红原县| 广昌县| 英吉沙县| 甘洛县|