php簡單操作memcached

使用PHP操作Memcached

1.創建一個Memcached對象

    $m = new Memcached();

2.傳入服務器

    //一臺服務器
        $m->addServer('127.0.0.1','11211');
    //多臺服務器
        $servers = array(
                array('127.0.0.1','11211'),
                array('127.0.0.2','11211')
        );
        $m->addServers($servers);
    //查看一下運行狀態
        print_r($m->getStats());
    //獲取memcached版本
        $m->getVersion();
執行結果得到以下結果:
Array ( [127.0.0.1:11211] => Array ( [pid] => 1164 [uptime] => 80 [threads] => 4 [time] => 1491374933 [pointer_size] => 64 [rusage_user_seconds] => 0 [rusage_user_microseconds] => 0 [rusage_system_seconds] => 0 [rusage_system_microseconds] => 9556 [curr_items] => 0 [total_items] => 0 [limit_maxbytes] => 67108864 [curr_connections] => 10 [total_connections] => 32 [connection_structures] => 11 [bytes] => 0 [cmd_get] => 0 [cmd_set] => 0 [get_hits] => 0 [get_misses] => 0 [evictions] => 0 [bytes_read] => 302 [bytes_written] => 21588 [version] => 1.4.15 ) )
注意:因爲傳入的第二臺服務器是不存在的,所以無法獲取到正確的信息。也可以使用getVersion()來直接獲取memcached的版本信息。

3.add()方法和get()方法

    /*
     * add()
     * key代表加入緩存的key值
     * value代表加入緩存的value值
     * 600代表這條緩存的生效時間爲600秒,0代表永久生效
     */

    $m->add('key','value',600);

    /*
     * get()
     * 通過key值來獲取緩存
     */

    echo "緩存key值:".$m->get('key);

如果我在第一個add()方法下面再添加一個:

$m->add('key','value1',600);

其實這樣是不會覆蓋掉前面的值得,如果想要覆蓋的話可以使用replace()方法

4.replace()方法

    $m->add('key','value',600);

    $m->replace('key','value11',600);
這樣當我們再次get(‘key’)的時候就會獲取到value11了。

5.set()方法

set()方法其實就集成了add方法和replace方法,如果set的key值是不存在的,它就相當於add方法,如果set的key值已經存在了,它就相當於replace方法,所以一般的時候set方法纔是最常用的方法。
    $m->set('key','value',600);

6.delete()方法,刪除緩存

    /*
     * delete()
     * 傳入一條緩存的key
     */
    $m->delete('key');
假如我上面添加的緩存失效時間還沒有到,執行delete方法後,我們依然無法獲取到這條緩存了。

7.flush()方法

直接清除掉所有的緩存!(慎用!!!)

8.increment()方法,加法操作

    //設置一條key值爲num,value爲5,永久生效的緩存,只需要第一次時候設置緩存即可,之後每次訪問緩存值都會遞增
    $m->set('num',5,0);
    //沒刷新一次頁面key值爲num的緩存value加5
    $m->increment('num',5);
    //輸出這條緩存
    echo $m->get('num');

9.decrement()方法

和increment()方法相似,只是變成了減法,具體使用方法和increment()方法一樣。

10.setMulti()方法,更加優雅的使用Memcached方法

如果一直按照前面的方法進行set緩存的話,一條一條存入是很慢的,所以Memcached爲我們提供給了setMulti()方法,使用方法如下:
    //首先定義要存入緩存的數組
    $data = array(
        'key1'=>'value1',
        'key2'=>'value2'
    );
    /*
     * setMulti()
     * 第一個參數代表傳入的數組,第二個參數代表生效時間,0代表永久
     */
    $m->setMulti($data,0);

11.getMulti()方法

同樣獲取緩存也可以一次獲取多條緩存,使用方法如下:
    //定義獲取緩存的key值得數組
    $get = array('key1','key2');
    /*
     * getMulti()
     * 傳入需要獲取緩存的key值
     */
    $result = $m->getMulti($get);
    var_dump($result);

12.deleteMulti()方法

和getMulti()方法類似,不過是刪除緩存,使用方法如下:
    $delete = array('key1','key2');
    $m->deleteMulti($delete);
    //這時key值爲key1和key2的緩存就被刪除掉了。

13.getResultCode()方法

當正確執行時會返回0
    //執行完一個操作之後可以使用這個方法來查看執行的情況,剛纔執行了deleteMulti()方法,這時候可以使用getResultCode()方法來查看操作是否成功
    echo $m->getResultCode();

14.getResultMessage()方法

和getResultCode()方法的區別是,getResultCode()是返回狀態碼,getResultMessage()方法是返回具體信息。使用方法如下:
    //上面執行deleteMulti()方法
    $m->getResultMessage();
    //這回是返回一個SUCCESS的信息,告訴我們操作成功了,具體的返回信息參考上面的更多狀態碼鏈接!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章