memcached安裝測試

餘二五發表於2017-11-16

首先提下memcached 是守護程式,memcache是PHP擴充套件這點大家知道,別搞錯了 !

作業系統:centos

伺服器WEB:192.168.210

伺服器WEB:192.168.209

  •  第一部分:安裝PHP擴充套件memcache (兩臺)
    1. tar -zxf memcache-2.2.6.tgz
    2. cd memcache-2.2.6
    3. /usr/local/php/bin/phpize
    4. ./configure –with-php-config=/usr/local/php/bin/php-config
    5. make
    6. make install
    7. vi /usr/local/php/etc/php.ini 
    8. extension_dir = “/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626” #no-debug-non-zts-20090626這個目錄跟據你自己實際得到名稱修改

       extension = “memcache.so”

 

  • 第二部分:安裝memcached (兩臺二選1)
    1. tar -zxf memcached-1.4.14.tar.gz
    2. cd memcached-1.4.14
    3. ./configure
    4. make
    5. make install
    6. /usr/local/bin/memcached -m 32m -p 11211 -d -u root -P /var/run/memcached.pid -c 256 #啟動服務,具體引數值自行修改,注意開啟防火牆埠

 

 

  • 第三部分:測試(重要)
    1. vi /usr/local/php/etc/php.ini
    2. session.save_handler = “memcache” #儲存方式
    3. session.save_path = “tcp://192.168.1.210:11211”  #session 儲存路經
    4.  
    5. 另一種方式就是 PHP程式裡面寫入
    6. ini_set(“session.save_handler”, “memcache”);

      ini_set(“session.save_path”, “tcp://192.168.1.210:11211”);
    7.  
    8. 此程式是網上摘錄
    9. vi session.php #進入192.168.2.210 輸入
    10. <?php

      session_start();

      if (!isset($_SESSION[`TEST`])) {

          $_SESSION[`TEST`] = time();

      }
    11. $_SESSION[`TEST3`] = time();
    12. print $_SESSION[`TEST`];

      print “<br><br>”;

      print $_SESSION[`TEST3`];

      print “<br><br>”;

      print session_id();

      ?>
    13. 執行結果如下
    14. 1346805490


      1346805568


      c0o46kuhnaokd70g6677ta76 #把這串數值輸入到如下程式內
    15. vi get.php  #進入192.168.2.209  輸入
    16. <?php

      $memcache = memcache_connect(`192.168.2.210`, 11211);

      var_dump($memcache->get(`c0o46kuhnaokd70g6677ta7601`)); 

      ?>
    17. 執行結果如下
    18. string(37) “TEST|i:1346805490;TEST3|i:1346805568;”  #證明成功
    19. bool(false)  #出現這句就證成,配置不正確,請仔細檢查
    20. 特別提醒:建義/usr/local/php/bin/php sessin.php | get.php 使用程式直接跑報錯資訊很詳細,方便排查
  •   
  • 第4部自寫的memcached啟動指令碼
    1. ./memcache.py stop|start|restart 格式
    2. 如下原始碼:
    3.  
    
    
    1. #!/usr/bin/python 
    2. # 
    3. import sys 
    4. import os 
    5.  
    6. #This is geting arguments 
    7. AGRV=.join(sys.argv[1:]) 
    8.  
    9. #The memcache run argument of script 
    10. MEM_BIN=`/usr/local/bin/memcached` 
    11. MEM_CACHE= `32m` 
    12. MEM_PORT=`11211` 
    13. MEM_USER=`root` 
    14. MEM_PID=`/var/run/` 
    15. MEM_PID_FILE=`memcached.pid` 
    16. MEM_THREAD=`256` 
    17. MEM_STOP=`daemon kill -9 `cat /var/run/memcached.pid“ 
    18.  
    19.  
    20. #The memcache commands 
    21. MEM_EXEC=`daemon %s -m %s -p %s -d -u %s -P %s -c %s`%(MEM_BIN,MEM_CACHE,MEM_PORT,MEM_USER,MEM_PID+MEM_PID_FILE,MEM_THREAD) 
    22.  
    23.  
    24. #Source function library. 
    25. FUN_LIB=`. /etc/rc.d/init.d/functions&&` 
    26.  
    27.  
    28. #Starting memcahce function. 
    29. def start(): 
    30.     if os.path.isfile(MEM_PID+MEM_PID_FILE): 
    31.         print “memcache already is runing ….” 
    32.     else
    33.         if os.system(FUN_LIB+MEM_EXEC) == 0
    34.             print “Starting memcache:” 
    35.  
    36.  
    37. def stop(): 
    38.     if os.system(FUN_LIB+MEM_STOP) == 0
    39.     os.remove(MEM_PID+MEM_PID_FILE) 
    40.         print “Stoping memcache:” 
    41.      
    42. def restart(): 
    43.     stop() 
    44.     start() 
    45.  
    46.  
    47.  
    48.  
    49. #The program decide start|stop|restart 
    50. if AGRV.upper() == `START`
    51.     start() 
    52.  
    53. elif AGRV.upper() == `STOP`
    54.     stop() 
    55.  
    56. elif AGRV.upper() == `RESTART`
    57.     restart() 
    58.  
    59. else
    60.     print `Please input argument(start|stop|restart)` 
    61.      
本文轉自 ibelieveme 51CTO部落格,原文連結:http://blog.51cto.com/skyson/982551,如需轉載請自行聯絡原作者


相關文章