日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

企业——memcache对PHP页面的缓存加速优化

發布時間:2025/4/16 php 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 企业——memcache对PHP页面的缓存加速优化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ?Memcache 是一個高性能的分布式內存對象緩存系統,用于動態Web應用以減輕數據庫負載。它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提高了網站訪問的速度。 MemCaChe是一個存儲鍵值對的HashMap,在內存中對任意的數據(比如字符串、對象等)所使用的key-value存儲,數據可以來自數據庫調用、API調用,或者頁面渲染的結果。MemCache設計理念就是小而強大,它簡單的設計促進了快速部署、易于開發并解決面對大規模的數據緩存的許多難題,而所開放的API使得MemCache能用于Java、C/C++/C#、Perl、Python、PHP、Ruby等大部分流行的程序語言。數據庫是是將數據存放在硬盤中,因此讀取的速度會相對于將數據存儲在內存中的memcache來說慢。

      

 

? ?傳統的Web應用都將數據保存到RDBMS中,應用服務器從RDBMS中讀取數據、處理數據并在瀏覽器中顯示。但是隨著數據量增大、訪問的集中、就會出現RDBMS的負擔加重、數據庫響應變慢、導致整個系統響應延遲增加。而memcached就是為了解決這個問題而出現的,memcached是一款高性能的分布式內存緩存服務器,一般目的是為了通過緩存數據庫的查詢命中減少數據庫壓力、提高應用響應速度、提高可擴展性。

?

二.memcache的配置

1.解壓memcache源碼包

  tar? zxf? memcache-2.2.5.tgz

?

2.將前邊php編譯完成的二進制命令加入環境變量中,保證可以直接調用php命令

  vim ~/.bash_profile

    PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin:/usr/local/lnmp/php/bin
  source ~/.bash_profile  ##刷新環境變量

?

3.創建一個預編譯環境并進行編譯匯編memcache源碼包

  phpize是用來擴展php擴展模塊的,通過phpize可以建立php的外掛模塊,比如你想在原來編譯好的php中加入memcached或者ImageMagick等擴展模塊,可以使用phpize。

  phpize工具是在php安裝目錄下,基于這點phpize對應了當時的php環境,所以是要根據該php的配置情況生成對應的configure文件,建立一個configure文件。必須在一個目錄下去運行phpize,那么phpize就知道你的環境是哪個目錄,并且configure文件建立在該目錄下。

  cd memcache-2.2.5
  phpize
  Configuring for:
    PHP Api Version: 20131106
    Zend Module Api No: 20131226
    Zend Extension Api No: 220131226
  ./configure      ##源碼編譯,已經安裝好了php,我們就不用再指定新的php擴展模塊路徑
  make && make install

?

4.php的配置文件中添加memcache模塊

  cd /usr/local/lnmp/php/etc/
  vim php.ini
    873 extension=memcache.so      # 將873行memcache模塊的注釋打開
  /etc/init.d/php-fpm reload
    Reload service php-fpm done
  php -m    ##查看php模塊
  php -m | grep memcache    ##過濾memcache模塊,發現已經有了這個模塊
    memcache

  php -m | grep mysql    ##同時支持mysql
    mysql
    mysqli
    mysqlnd
    pdo_mysql

?

5.安裝memcache工具并啟動memcache

  yum install -y memcahce

  /etc/init.d/memcached start

  netstat -antlp  ##查看端口信息  memcache的監聽端口是(11211端口)  如果有端口信息說明工具開啟成功

?

  

  注意:上面顯示的端口信息是,檢測所有11211端口的所有主機,如果想只監控本機則進行以下修改(注意,這里只做介紹,實際只監聽本機是不合理的,此步驟不用做)

  vim /etc/sysconfig/memcached
    PORT="11211"
    USER="memcached"
    MAXCONN="1024"
    CACHESIZE="64"
    OPTIONS="-l 127.0.0.1"   ##修改此處,將信息修改為本機的回環接口的IP地址:127.0.0.1

  /etc/init.d/memcached restart
    Stopping memcached: [ OK ]
    Starting memcached: [ OK ]

  netstat -atnlp
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
    tcp 0 0 127.0.0.1:11211 0.0.0.0:* LISTEN 3855/memcached      ##顯示只監聽本機成功
    tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1251/nginx
    tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 910/sshd
    tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 986/master
    tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 3807/php-fpm
    tcp 0 0 :::22 :::* LISTEN 910/sshd
    tcp 0 0 ::1:25 :::* LISTEN 986/master
    tcp 0 0 :::3306 :::* LISTEN 1210/mysqld

?

6.將測試文件cp到/usr/local/lnmp/nginx/html,設置memcached的密碼

  cd memcache-2.2.5
  cp memcache.php example.php /usr/local/lnmp/nginx/html/    ##用nginx當做web服務器,將memcache的測試頁面放到相應的發布目錄下面
  cd /usr/local/lnmp/nginx/html/
  vim memcache.php
    22 define('ADMIN_USERNAME','memcache');      ##用戶為memcache
    23 define('ADMIN_PASSWORD','westos');      ##設置密碼為westos // Admin Password
    28 $MEMCACHE_SERVERS[] = '172.25.79.1:11211';
    29 #$MEMCACHE_SERVERS[] = 'mymemcache-server2:11211';?

?

  yum install -y telnet      ##為什么需要telnet?telnet就是查看某個端口是否可訪問。有時候經常要用的端口是 8080,那么你可以啟動服務器,用telnet 去查看這個端口是否可用。

?  telnet?localhost 11211  ##

      

      

?

7.?測試:

  瀏覽器輸入:172.25.254.1:memcache.php

  輸入設置的賬戶和密碼

  然后重新打開一個瀏覽器頁面,輸入172.25.254.1:example.php ,不斷刷新

      

  當訪問多次example.php后,查看命中情況會不斷提高,最后將會達到百分之百。 如下圖:

      

?

8.對頁面進行壓力測試  (加速頁面example.php和沒加速index.php的對比(錯誤率對比,相應時間對比))

(1)訪問 index.php

  ab -c 10 -n 5000 http://172.25.254.1/index.php  ## ab是性能測試的一個工具,可用于web的并發測試

      ab常用參數的介紹:

      -n :總共的請求執行數,缺省是1;

      -c: 并發數,缺省是1;

      -t:測試所進行的總時間,秒為單位,缺省50000s

      -p:POST時的數據文件

      -w: 以HTML表的格式輸出結果

?

  注意:如果沒有ab這個命令,則可以安裝下包:yum install httpd-tools-2.2.15-29.el6_4.x86_64 -y

  

  可以看到所用時間為5s左右,出錯個數為529個:

      

?

?

(2)訪問 example.php

  ab -c 10 -n 5000 http://172.25.254.1/example.php

  可以看到所用時間為2s左右,出錯個數為0個,速度提高了,錯誤率大大降低

      

?

?

?

?

      

?

轉載于:https://www.cnblogs.com/wf-aiyouwei/p/10679686.html

總結

以上是生活随笔為你收集整理的企业——memcache对PHP页面的缓存加速优化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。