欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

php操作memcache的用法、詳解和方法介紹

系統 2871 0

1.簡介

memcache模塊是一個高效的守護進程,提供用于內存緩存的過程式程序和面向對象的方便的接口,特別是對于設計動態web程序時減少對數據庫的訪問。

memcache也提供用于通信對話(session_handler)的處理。

更多Memcache 模塊相關信息可以到? http://www.danga.com/memcached/ ?查閱。

?1.1.memcache在php.ini中的配置項列表

?

memcache在php.ini中的配置項列表
名稱 默認值 是否可變 改變日志
memcache.allow_failover “1” PHP_INI_ALL Available since memcache 2.0.2.
memcache.max_failover_attempts "20" PHP_INI_ALL Available since memcache 2.1.0.
memcache.chunk_size "8192" PHP_INI_ALL Available since memcache 2.0.2.
memcache.default_port "11211" PHP_INI_ALL Available since memcache 2.0.2.
memcache.hash_strategy "standard" PHP_INI_ALL Available since memcache 2.2.0.
memcache.hash_function "crc32" PHP_INI_ALL Available since memcache 2.2.0.
session.save_handler "files" PHP_INI_ALL Supported since memcache 2.1.2
session.save_path "" PHP_INI_ALL Supported since memcache 2.1.2

?

有關 PHP_INI_* 常量進一步的細節與定義參見PHP手冊php.ini 配置選項。

1.2.以下是配置項的簡要解釋

memcache.allow_failover ?Boolean

在錯誤時是否透明的故障轉移到其他服務器上處理(注:故障轉移是動詞)。

memcache.max_failover_attempts ?integer

定義服務器的數量類設置和獲取數據,只聯合 memcache.allow_failover 一同使用。

memcache.chunk_size ?integer

數據將會被分成指定大小(chunk_size)的塊來傳輸,這個值(chunk_size)越小,寫操作的請求就越多,如果發現其他的無法解釋的減速,請試著將這個值增大到32768.

memcache.default_port ?string

當連接memcache服務器的時候,如果沒有指定端口這個默認的tcp端口將被用。

memcache.hash_strategy ?string

控制在映射 key 到服務器時使用哪種策略。設置這個值一致能使hash 算法始終如一的使用于服務器接受添加或者刪除池中變量時將不會被重新映射。設置這個值以標準的結果在舊的策略被使用時。

memcache.hash_function ?string

控制哪種 hsah 函數被應用于 key映射 到服務器過程中,默認值“crc32”使用 CRC32 算法,而“fnv”則表示使用 FNV-1a 算法。

session.save_handler ?string

通過設置這個值為memcache來確定使用 memcache 用于通信對話的處理(session handler)。

session.save_path ?string

定義用于通話存儲的各服務器鏈接的分隔符號,例如:“tcp://host1:11211, tcp://host2:11211”。

每服務器個鏈接可以包含被接受于該服務器的參數,比較類似使用 Memcache::addServer() 來添加的服務器,例如:“tcp://host1:11211?persistent=1&weight=1&timeout=1& amp;retry_interval=15”。

?1.3.memcache常量列表

?

memcache常量列表
名稱 類型 描述
MEMCACHE_COMPRESSED integer 用于調整在使用 Memcache::set(), Memcache::add() 和 Memcache::replace() 幾個函數時的壓縮比率。
MEMCACHE_HAVE_SESSION integer 如果通信對話的處理(session handler)被允許使用其值為 1,其他情況值為 0。

?

2Memcache Functions 函數列表

2.1.Memcache::connect

2.1.1.說明

bool Memcache::connect ( string $host [, int $port [, int $timeout ]] )

連接memcache服務器

2.1.2.參數

$host(string)??服務器域名或ip

$port(int)??服務器tcp端口號,默認值是11211

$timeout??連接memcache進程的失效時間,在修改它的默認值1的時候要三思,以免失去所有memcache緩存的優勢導致連接變得很慢。

2.1.3.返回值

如果成功則返回true,失敗則返回false

2.1.4.范例

      
        1
      
      
        $memcache_obj
      
       = memcache_connect('memcache_host', 11211
      
        ); 


      
      
        2
      
      
        $memcache
      
       = 
      
        new
      
      
         Memcache; 


      
      
        3
      
      
        $memcache
      
      ->connect('memcache_host', 11211); 
    

?

2.2.Memcache::pconnect

2.2.1.說明

bool Memcache::pconnect ( string $host [, int $port [, int $timeout ]] )

以常連接方式連接服務器

2.2.2.參數

$host(string)??服務器域名或ip

$port(int)??服務器tcp端口號,默認值是11211

$timeout??連接memcache進程的失效時間,在修改它的默認值1的時候要三思,以免失去所有memcache緩存的優勢導致連接變得很慢。

2.2.3.返回值

如果成功則返回true,失敗則返回false

2.2.4.范例

      
        1
      
      
        $memcache_obj
      
       = memcache_pconnect('memcache_host', 11211
      
        ); 


      
      
        2
      
      
        $memcache_obj
      
       = 
      
        new
      
      
         Memcache;


      
      
        3
      
      
        $memcache_obj
      
      ->pconnect('memcache_host', 11211);
    

?

2.3.Memcache::close

2.3.1.說明

bool Memcache::close ( void )

關閉對象 (對常連接不起作用)

2.3.2.返回值

如果成功則返回true,失敗則返回false

2.3.3.范例

      
        1
      
      
        $memcache_obj
      
       = memcache_connect('memcache_host', 11211
      
        );


      
      
        2
      
       memcache_close(
      
        $memcache_obj
      
      ); 
      
        $memcache_obj
      
       = 
      
        new
      
      
         Memcache;


      
      
        3
      
      
        $memcache_obj
      
      ->connect('memcache_host', 11211
      
        );


      
      
        4
      
      
        $memcache_obj
      
      ->close();
    

?

2.4.Memcache::addServer

2.4.1.說明

bool Memcache::addServer ( string $host [, int $port [, bool $persistent [, int $weight [, int $timeout [, int $retry_interval [, bool $status [, callback $failure_callback ]]]]]]] )

向對象添加一個服務器(注:addServer沒有連接到服務器的動作,所以在memcache進程沒有啟動的時候,執行addServer成功也會返回true)

2.4.2.參數

host???????????????服務器域名或 IP

port???????????????端口號,默認為 11211

persistent?????????是否使用常連接,默認為 TRUE

weight?????????????權重,在多個服務器設置中占的比重

timeout??????????連接服務器失效的秒數,修改默認值 1 時要三思,有可能失去所有緩存方面的優勢導致連接變得很慢

retry_interval????服務器連接失敗時的重試頻率,默認是 15 秒一次,如果設置為 -1 將禁止自動重試,當擴展中加載了 dynamically via dl() 時,無論本參數還是常連接設置參數都會失效。

??????????????????????????每一個失敗的服務器在失效前都有獨自的生存期,選擇后端請求時會被跳過而不服務于請求。一個過期的連接將成功的重新連接或者被標記為失敗的連接等待下一次重試。這種效果就是說每一個 web server 的子進程在服務于頁面時的重試連接都跟他們自己的重試頻率有關。

status?????????????控制服務器是否被標記為 online,設置這個參數為 FALSE 并設置 retry_interval 為 -1 可以使連接失敗的服務器被放到一個描述不響應請求的服務器池子中,對這個服務器的請求將失敗,接受設置為失敗服務器的設置,默認參數為 TRUE,代表該服務器可以被定義為 online。

failure_callback???失敗時的回調函數,函數的兩個參數為失敗服務器的 hostname 和 port

2.4.3.返回值

成功返回 TRUE,失敗返回 FALSE。

注:在測試addServer函數的時候我們主要測試了其參數retry_interval和status

2.4.4.范例

2.4.4.1.retry_interval參數的測試

      
        1
      
      
        $mem
      
       = 
      
        new
      
      
         Memcache; 


      
      
        2
      
      
        $is_add
      
       = 
      
        $mem
      
      ->addServer('localhost', 11211, 
      
        true
      
      , 1, 1, 15, 
      
        true
      
      ); 
      
        //
      
      
         retrt_interval=15 
      
      
        3
      
      
        $is_set
      
       = 
      
        $mem
      
      ->set('key1', '中華人民共和國'); 
    

?

上面的例子中如果localhost服務器down掉或是memcache守護進程當掉,執行請求的時候連接服務器失敗時算起15秒后會自動重試連接服務器,但是在這15秒內不會去連接這個服務器,就是只要有請求,沒15秒就會嘗試連接服務器,但是每個服務器連接重試是獨立的。比如說我一次添加了兩個服務器一個是localhost,一個是172.16.100.60,它們分別是從各自連接失敗那個時間算起,只要對各自服務器有請求就會每隔15秒去連接各自的服務器的。

2.4.4.2.retry_interval和status結合使用的情況

      
        1
      
      
        $mem
      
       = 
      
        new
      
      
         Memcache; 


      
      
        2
      
      
        $is_add
      
       = 
      
        $mem
      
      ->addServer('localhost', 11211, 
      
        true
      
      , 1, 1, -1, 
      
        false
      
      ); 
      
        //
      
      
         retrt_interval=-1, status=false 
      
      
        3
      
      
        $is_set
      
       = 
      
        $mem
      
      ->set('key1', '中華人民共和國');
    

?

在上面的retrt_interval=-1, status=false這種情況下,將連接失敗的服務器放到一個不響應請求的一個池子中,因此對key分配的算法也就沒有影響了,而他是立即返回錯誤失敗還是故障轉移還要看memcache.allow_failover的設置,執行set, add, replace,get等請求的時候都會失敗返回false,即使memcache進程運行正常。

2.4.4.3.status參數的測試

除了與retry_interval結合使用,status單獨使用的情況會對函數memcache::getServerStatu獲得的結果產生影響

無論memcache進程的正常運行還是當掉,status為true的時候getServerStatus的結果都是true,反之則為false

但是在memcache進程正常運行的情況下,對set,add,replace,get等函數都沒有影響。

2.5.Memcache::add

2.5.1.說明

bool Memcache::add ( string $key , mixed $var [, int $flag [, int $expire ]] )

添加一個要緩存的數據如果作為這個緩存的數據的鍵在服務器上還不存在的情況下,

2.5.2.參數

key????????????????緩存數據的鍵 其長度不能超過250個字符

var????????????????值,整型將直接存儲,其他類型將被序列化存儲 ,其值最大為1M

flag???????????????是否使用 zlib 壓縮 ,當flag=MEMCACHE_COMPRESSED的時侯,數據很小的時候不會采用zlib壓縮,只有數據達到一定大小才對數據進行zlib壓縮。(沒有具體的測試數據進行壓縮的最小值是多少)

expire?????????????過期時間,0 為永不過期,可使用 unix 時間戳格式或距離當前時間的秒數,設為秒數時不能大于 2592000(30 天)

2.5.3.返回值

成功返回 TRUE,失敗返回 FALSE,如果這個鍵已經存在,其他方面memcache:;add()的行為與memcache::set相似

2.5.4.范例

      
        1
      
      
        $memcache_obj
      
       = memcache_connect("localhost", 11211
      
        ); 


      
      
        2
      
       memcache_add(
      
        $memcache_obj
      
      , 'var_key', 'test variable', 
      
        FALSE
      
      , 30
      
        ); 


      
      
        3
      
      
        $memcache_obj
      
      ->add('var_key', 'test variable', 
      
        FALSE
      
      , 30); 
    

?

2.6.Memcache::replace

2.6.1.說明

bool Memcache::replace ( string $key , mixed $var [, int $flag [, int $expire ]] )

替換一個指定 已存在key 的的緩存變量內容

2.6.2.參數

key????????????????緩存數據的鍵, 其長度不能超過250個字符

var????????????????值,整型將直接存儲,其他類型將被序列化存儲,其值最大為1M

flag???????????????是否使用 zlib 壓縮 ,當flag=MEMCACHE_COMPRESSED的時侯,數據很小的時候不會采用zlib壓縮,只有數據達到一定大小才對數據進行zlib壓縮。(沒有具體的測試數據進行壓縮的最小值是多少)

expire?????????????過期時間,0 為永不過期,可使用 unix 時間戳格式或距離當前時間的秒數,設為秒數時不能大于 2592000(30 天)

2.6.3.返回值

成功返回 TRUE,失敗返回 FALSE。

2.6.4.范例

      
        1
      
      
        $memcache_obj
      
       = memcache_connect('memcache_host', 11211
      
        ); 


      
      
        2
      
       memcache_replace(
      
        $memcache_obj
      
      , "test_key", "some variable", 
      
        FALSE
      
      , 30
      
        ); 


      
      
        3
      
      
        $memcache_obj
      
      ->replace("test_key", "some variable", 
      
        FALSE
      
      , 30);
    

?

2.7.Memcache::set

2.7.1.說明

bool Memcache::set ( string $key , mixed $var [, int $flag [, int $expire ]] )

設置一個指定 key 的緩存變量內容

2.7.2.參數

key????????????????緩存數據的鍵, 其長度不能超過250個字符

var????????????????值,整型將直接存儲,其他類型將被序列化存儲,其值最大為1M

flag???????????????是否使用 zlib 壓縮 ,當flag=MEMCACHE_COMPRESSED的時侯,數據很小的時候不會采用zlib壓縮,只有數據達到一定大小才對數據進行zlib壓縮。(沒有具體的測試數據進行壓縮的最小值是多少)

expire?????????????過期時間,0 為永不過期,可使用 unix 時間戳格式或距離當前時間的秒數,設為秒數時不能大于 2592000(30 天)

2.7.3.返回值

成功返回 TRUE,失敗返回 FALSE。

2.7.4.范例

      
        1
      
      
        $memcache_obj
      
       = memcache_connect('memcache_host', 11211
      
        ); 


      
      
        2
      
       memcache_set(
      
        $memcache_obj
      
      , 'var_key', 'some variable', 0, 30
      
        ); 


      
      
        3
      
      
        echo
      
       memcache_get(
      
        $memcache_obj
      
      , 'var_key'); 
    
      
        1
      
      
        $memcache_obj
      
       = 
      
        new
      
      
         Memcache; 


      
      
        2
      
      
        $memcache_obj
      
      ->connect('memcache_host', 11211
      
        ); 


      
      
        3
      
      
        $memcache_obj
      
      ->set('var_key', 'some really big variable', MEMCACHE_COMPRESSED, 50
      
        ); 


      
      
        4
      
      
        echo
      
      
        $memcache_obj
      
      ->get('var_key');
    

?

2.8.Memcache::get

2.8.1.說明

string Memcache::get ( string $key [, int &$flags ] )

array Memcache::get ( array $keys [, array &$flags ] )

獲取某個 key 的變量緩存值

2.8.2.參數

key????????????????緩存值的鍵

flags??????????????如果是傳址某個變量,獲取緩存值被set或是add的flag結果將被存于該變量

2.8.3.返回值

返回緩存的指定 key 的變量內容或者是在失敗或該變量的值不存在時返回 FALSE

?如果傳出的key的數組中的key都不存在,返回的結果是一個空數組,反之則返回key與緩存值相關聯的關聯數組

2.8.4.范例

      
         1
      
      
        $memcache_obj
      
       = memcache_connect('memcache_host', 11211
      
        ); 


      
      
         2
      
      
        $var
      
       = memcache_get(
      
        $memcache_obj
      
      , 'some_key'
      
        ); 


      
      
         3
      
      
        $memcache_obj
      
       = 
      
        new
      
      
         Memcache; 


      
      
         4
      
      
        $memcache_obj
      
      ->connect('memcache_host', 11211
      
        ); 


      
      
         5
      
      
        $var
      
       = 
      
        $memcache_obj
      
      ->get('some_key'
      
        ); 


      
      
         6
      
      
        $memcache_obj
      
       = memcache_connect('memcache_host', 11211
      
        ); 


      
      
         7
      
      
        $var
      
       = memcache_get(
      
        $memcache_obj
      
      , 
      
        Array
      
      ('some_key', 'another_key')); 
      
        //
      
      
        如果some_key,another_key不存在 
      
      
         8
      
      
        $var
      
       = 
      
        array
      
      (); 
      
        //
      
      
        如果some_key,another_key存在 
      
      
         9
      
      
        $var
      
       = 
      
        array
      
      ('some_key'=>'緩存值', 'another_key'=>'緩存值'
      
        ); 


      
      
        10
      
      
        $memcache_obj
      
       = 
      
        new
      
      
         Memcache; 


      
      
        11
      
      
        $memcache_obj
      
      ->connect('memcache_host', 11211
      
        ); 


      
      
        12
      
      
        $var
      
       = 
      
        $memcache_obj
      
      ->get(
      
        Array
      
      ('some_key', 'second_key')); 
    

?

2.9.Memcache::delete

2.9.1.說明

bool Memcache::delete ( string $key [, int $timeout ] )

刪除某一個變量的緩存

2.9.2.參數

key ?????????緩存的鍵鍵值不能為null和'’,當它等于前面兩個值的時候php會有警告錯誤。

timeout???刪除這項的時間,如果它等于0,這項將被立刻刪除反之如果它等于30秒,那么這項被刪除在30秒內?

2.9.3.返回值

成功返回 TRUE,失敗返回 FALSE。

2.9.4.范例

      
        1
      
      
        $memcache_obj
      
       = memcache_connect('memcache_host', 11211
      
        ); 


      
      
        2
      
       memcache_delete(
      
        $memcache_obj
      
      , 'key_to_delete', 10
      
        ); 


      
      
        3
      
      
        $memcache_obj
      
       = 
      
        new
      
      
         Memcache; 


      
      
        4
      
      
        $memcache_obj
      
      ->connect('memcache_host', 11211
      
        ); 


      
      
        5
      
      
        $memcache_obj
      
      ->delete('key_to_delete', 10);
    

?

2.10.Memcache::flush

2.10.1.說明

bool Memcache::flush ( void )

清空所有緩存內容,不是真的刪除緩存的內容,只是使所有變量的緩存過期,使內存中的內容被重寫

2.10.2.返回值

成功返回 TRUE,失敗返回 FALSE。

2.10.3.范例

      
        1
      
      
        $memcache_obj
      
       = memcache_connect('memcache_host', 11211
      
        ); 


      
      
        2
      
       memcache_flush(
      
        $memcache_obj
      
      
        ); 


      
      
        3
      
      
        $memcache_obj
      
       = 
      
        new
      
      
         Memcache; 


      
      
        4
      
      
        $memcache_obj
      
      ->connect('memcache_host', 11211
      
        ); 


      
      
        5
      
      
        $memcache_obj
      
      ->
      
        flush
      
      ();
    

?

2.11.Memcache::getExtendedStats

2.11.1.說明

array Memcache::getExtendedStats ([ string $type [, int $slabid [, int $limit ]]] )

獲取所有服務器擴展靜態信息?

2.11.2.參數

type???????靜態信息類型,有效值包括{reset, malloc, maps, cachedump, slabs, items, sizes},依照一定規則協議這個可選參數是為了方便開發人員查看不同類別的信息而輸入的標題

slabid???用于按指定類型聯合設置 cache 堆為有效的片到堆中。緩存堆被被命令綁定到服務器上并被嚴格的用于調試用途

limit ?????用于按指定類型聯合設置 cache 堆為輸入的數字所限制的大小到堆,默認值為 100?

2.11.3.返回值

返回一個由服務器擴展靜態信息二維數組,失敗時返回 FALSE?

2.11.4.范例

      
        1
      
      
        $memcache_obj
      
       = 
      
        new
      
      
         Memcache; 


      
      
        2
      
      
        $memcache_obj
      
      ->addServer('memcache_host', 11211
      
        ); 


      
      
        3
      
      
        $memcache_obj
      
      ->addServer('failed_host', 11211
      
        ); 


      
      
        4
      
      
        $stats
      
       = 
      
        $memcache_obj
      
      ->
      
        getExtendedStats(); 


      
      
        5
      
      
        print_r
      
      (
      
        $stats
      
      );
    

?

    
輸出結果 Array( [memcache_host:11211] => Array( [pid] => 3756 [uptime] => 603011 [time] => 1133810435 [version] => 1.1.12 [rusage_user] => 0.451931 [rusage_system] => 0.634903 [curr_items] => 2483 [total_items] => 3079 [bytes] => 2718136 [curr_connections] => 2 [total_connections] => 807 [connection_structures] => 13 [cmd_get] => 9748 [cmd_set] => 3096 [get_hits] => 5976 [get_misses] => 3772 [bytes_read] => 3448968 [bytes_written] => 2318883 [limit_maxbytes] => 33554432 ), [failed_host:11211] => )

2.12.Memcache::getStats

2.12.1.說明

array Memcache::getStats ([ string $type [, int $slabid [, int $limit ]]] )

獲取最后添加服務器靜態信息?

2.12.2.參數

type ??????靜態信息類型,有效值包括{reset, malloc, maps, cachedump, slabs, items, sizes},依照一定規則協議這個可選參數是為了方便開發人員查看不同類別的信息而輸入的標題

slabid???用于按指定類型聯合設置 cache 堆為有效的片到堆中。緩存堆被被命令綁定到服務器上并被嚴格的用于調試用途

limit??????用于按指定類型聯合設置 cache 堆為輸入的數字所限制的大小到堆,默認值為 100?

2.12.3.返回值

返回一個服務器靜態信息數組,失敗時返回 FALSE?

2.13.Memcache::getServerStatus

2.13.1.說明

int Memcache::getServerStatus ( string $host [, int $port ] )

通過輸入的 host 及 port 來獲取相應的服務器信息

2.13.2.參數

host 服務器域名或 IP

port 端口號,默認為 11211

2.13.3.返回值

返回服務器狀態,0 為失敗,其他情況返回非 0 數字?

2.13.4.范例

      
        1
      
      
        $memcache
      
       = 
      
        new
      
      
         Memcache; 


      
      
        2
      
      
        $memcache
      
      ->addServer('memcache_host', 11211
      
        ); 


      
      
        3
      
      
        echo
      
      
        $memcache
      
      ->getServerStatus('memcache_host', 11211
      
        ); 


      
      
        4
      
      
        $memcache
      
       = memcache_connect('memcache_host', 11211
      
        ); 


      
      
        5
      
      
        echo
      
       memcache_get_server_status(
      
        $memcache
      
      , 'memcache_host', 11211); 
    

?

2.14.Memcache::getVersion

2.14.1.說明

string Memcache::getVersion ( void )

獲取服務器的版本號信息?

2.14.2.返回值

成功返回服務器的版本號字符串,失敗返回 FALSE?

2.14.3.范例

      
        1
      
      
        $memcache
      
       = 
      
        new
      
      
         Memcache; 


      
      
        2
      
      
        $memcache
      
      ->connect('memcache_host', 11211
      
        ); 


      
      
        3
      
      
        echo
      
      
        $memcache
      
      ->
      
        getVersion(); 


      
      
        4
      
      
        $memcache
      
       = memcache_connect('memcache_host', 11211
      
        ); 


      
      
        5
      
      
        echo
      
       memcache_get_version(
      
        $memcache
      
      ); 
    

?

2.15.Memcache::setCompressThreshold

bool Memcache::setCompressThreshold ( int $threshold [, float $min_savings ] )

設置壓縮極限

2.15.2.參數

threshold 設置控制自動壓縮的變量長度的最小值

min_saving 指定的最低壓縮比率,值必須介于 0 - 1 之間,默認為 0.2 代表 20% 的壓縮比率?

2.15.3.返回值

成功返回 TRUE,失敗返回 FALSE。?

2.15.4.范例

      
        1
      
      
        $memcache_obj
      
       = 
      
        new
      
      
         Memcache; 


      
      
        2
      
      
        $memcache_obj
      
      ->addServer('memcache_host', 11211
      
        ); 


      
      
        3
      
      
        $memcache_obj
      
      ->setCompressThreshold(20000, 0.2
      
        ); 


      
      
        4
      
      
        $memcache_obj
      
       = memcache_connect('memcache_host', 11211
      
        ); 


      
      
        5
      
       memcache_set_compress_threshold(
      
        $memcache_obj
      
      , 20000, 0.2); 
    

?

2.16.Memcache::setServerParams

2.16.1.說明

bool Memcache::setServerParams ( string $host [, int $port [, int $timeout [, int $retry_interval [, bool $status [, callback $failure_callback ]]]]] )

Memcache version 2.1.0 后增加的函數,運行時設置服務器參數

2.16.2.參數

host???????????服務器域名或 IP

port 端口號,默認為 11211

timeout?????超時連接失效的秒數,修改默認值 1 時要三思,有可能失去所有緩存方面的優勢導致連接變得很慢

retry_interval?????服務器連接失敗時的重試頻率,默認是 15 秒一次,如果設置為 -1 將禁止自動重試,當擴展中加載了 dynamically via dl() 時,無論本參數還是常連接設置參數都會失效。每一個失敗的服務器在失效前都有獨自的生存期,選擇后端請求時會被跳過而不服務于請求。一個過期的連接將成功的重新連接或者被標記為失敗的連接等待下一次重試。這種效果就是說每一個 web server 的子進程在服務于頁面時的重試連接都跟他們自己的重試頻率有關。

status ???控制服務器是否被標記為 online,設置這個參數為 FALSE 并設置 retry_interval 為 -1 可以使連接失敗的服務器被放到一個描述不響應請求的服務器池子中,對這個服務器的請求將失敗,接受設置為失敗服務器的設置,默認參數為 TRUE,代表該服務器可以被定義為 online。

failure_callback ???失敗時的回調函數,函數的兩個參數為失敗服務器的 hostname 和 port?

2.16.3.返回值

成功返回 TRUE,失敗返回 FALSE。?

2.16.4.范例

      
        1
      
      
        function
      
       _callback_memcache_failure(
      
        $host
      
      , 
      
        $port
      
      
        ) { 


      
      
        2
      
      
        print
      
       "memcache '
      
        $host
      
      :
      
        $port
      
      ' failed"
      
        ; } 


      
      
        3
      
      
        $memcache
      
       = 
      
        new
      
       Memcache; 
      
        //
      
      
         Add the server in offline mode 
      
      
        4
      
      
        $memcache
      
      ->addServer('memcache_host', 11211, 
      
        FALSE
      
      , 1, 1, -1, 
      
        FALSE
      
      ); 
      
        //
      
      
         Bring the server back online 
      
      
        5
      
      
        $memcache
      
      ->setServerParams('memcache_host', 11211, 1, 15, 
      
        TRUE
      
      , '_callback_memcache_failure'
      
        ); 


      
      
        6
      
      
        $memcache_obj
      
       = memcache_connect('memcache_host', 11211
      
        ); 


      
      
        7
      
       memcache_set_server_params(
      
        $memcache_obj
      
      , 'memcache_host', 11211, 1, 15, 
      
        TRUE
      
      , '_callback_memcache_failure'); 
    

?

2.17.Memcache::increment

2.17.1.說明

int Memcache::increment ( string $key [, int $value ] )

給指定 key 的緩存變量一個增值,如果該變量不是數字時不會被轉化為數字,這個增值將會加到該變量原有的數字之上,變量不存在不會新增變量,對于壓縮存儲的變量不要使用本函數因為相應的取值方法會失敗。?

2.17.2.參數

key 緩存值的鍵

var 值,整型將直接存儲,其他類型將被序列化存儲?

2.17.3.返回值

成功返回新的變量值,失敗返回 FALSE。

2.17.4.范例

      
        1
      
      
        $memcache_obj
      
       = memcache_connect('memcache_host', 11211
      
        ); 


      
      
        2
      
      
        $current_value
      
       = memcache_increment(
      
        $memcache_obj
      
      , 'counter', 2
      
        ); 


      
      
        3
      
      
        $memcache_obj
      
       = 
      
        new
      
      
         Memcache; 


      
      
        4
      
      
        $memcache_obj
      
      ->connect('memcache_host', 11211
      
        ); 


      
      
        5
      
      
        $current_value
      
       = 
      
        $memcache_obj
      
      ->increment('counter', 3);
    

?

2.18.Memcache::decrement

2.18.2.說明

?int Memcache::decrement ( string $key [, int $value ] )

給指定 key 的緩存變量一個遞減值,與 increment 操作類似,將在原有變量基礎上減去這個值,該項的值將會在轉化為數字后減去,新項的值不會小于 0,對于壓縮存儲的變量不要使用本函數因為相應的取值方法會失敗。?

2.18.2.參數

key 緩存值的鍵

var 值,整型將直接存儲,其他類型將被序列化存儲?

2.18.3.返回值

成功返回新的變量值,失敗返回 FALSE。?

2.18.4.范例

      
        1
      
      
        $memcache_obj
      
       = memcache_connect('memcache_host', 11211
      
        ); 


      
      
        2
      
      
        $new_value
      
       = memcache_decrement(
      
        $memcache_obj
      
      , 'test_item', 2
      
        ); 


      
      
        3
      
      
        $memcache_obj
      
       = 
      
        new
      
      
         Memcache; 


      
      
        4
      
      
        $memcache_obj
      
      ->connect('memcache_host', 11211
      
        ); 


      
      
        5
      
      
        $new_value
      
       = 
      
        $memcache_obj
      
      ->decrement('test_item', 3);
    

?

2.19.memcache_debug

2.19.1.說明

bool memcache_debug ( bool $on_off )

設置 memcache 的調試器是否開啟,值為 TRUE 或 FALSE。 受影響于 php 安裝時是否使用了 --enable-debug 選項,如果使用了該函數才會返回 TRUE,其他情況將始終返回 FALSE。?

2.19.2.參數

on_off 設置調試模式是否開啟,TRUE 為開啟,FALSE 為關閉

2.19.3.返回值

php 安裝時如果使使用了 --enable-debug 選項返回 TRUE,否則將返回 FALSE。

ending

php操作memcache的用法、詳解和方法介紹


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美成人在线免费观看 | 欧美一级二级三级视频 | 国产精品中文字幕在线 | 亚洲精品手机在线 | 日韩一区在线视频 | 亚洲精品不卡 | 国产精品久久久爽爽爽麻豆色哟哟 | 国产欧美亚洲精品a | 天天摸天天做天天爽在线 | 久久精品国产一区二区三区不卡 | 国产亚洲欧美在线视频 | 精品久久洲久久久久护士 | 伊人狠狠 | 九九爱精品| 91精品久久一区二区三区 | 91精品欧美久久久久久动漫 | 天天精品在线 | 欧美日韩综合一区 | 日韩a无v码在线播放免费 | 山岸逢花在线观看 | 免费a级在线观看播放 | 久久丁香 | 色网在线播放 | 精品久久久久久久久久久久久久 | 精品一卡2卡三卡四卡二卡 欧美不卡一区二区三区在线观看 | 92精品国产自产在线 | 亚洲免费一区 | 成人亚洲国产综合精品91 | 日本免费高清一区 | 欧美日韩精品一区二区 | 成 人 黄 色 大片 | 日韩一区二区中文字幕 | 色网站在线 | 亚洲欧美小视频 | 亚洲国产日韩欧美在线 | 国产精品久久久久久久午夜 | 亚洲欧洲日本天天堂在线观看 | 亚洲第一激情 | 色婷婷精品国产一区二区三区 | 久久中文字幕美谷朱里 | 日韩在线免费视频 |