memcached緩存服務(nginx php memcache mysql)

介紹:

Memcached是一款開源、高性能、分佈式內存對象緩存系統,可應用各種需要緩存的場景,其主要目的是通過降低對Database的訪問來加速web應用程序。它是一個基於內存的“鍵值對”存儲,用於存儲數據庫調用、API調用或頁面引用結果的直接數據,如字符串、對象等。

1、memcached是一款開發工具,它既不是一個代碼加速器,也不是數據庫中間件。其設計哲學思想主要反映在如下方面:

  1. 簡單key/value存儲:服務器不關心數據本身的意義及結構,只要是可序列化數據即可。存儲項由“鍵、過期時間、可選的標誌及數據”四個部分組成;
  2. 功能的實現一半依賴於客戶端,一半基於服務器端:客戶負責發送存儲項至服務器端、從服務端獲取數據以及無法連接至服務器時採用相應的動作;服務端負責接收、存儲數據,並負責數據項的超時過期;
  3. 各服務器間彼此無視:不在服務器間進行數據同步;
  4. O(1)的執行效率
  5. 清理超期數據:默認情況下,Memcached是一個LRU緩存,同時,它按事先預訂的時長清理超期數據;但事實上,memcached不會刪除任何已緩存數據,只是在其過期之後不再爲客戶所見;而且,memcached也不會真正按期限清理緩存,而僅是當get命令到達時檢查其時長;

2、Memcached提供了爲數不多的幾個命令來完成與服務器端的交互,這些命令基於memcached的協議實現。

  1. 存儲類命令:set, add, replace, append, prepend
  2. 獲取數據類命令:get, delete, incr/decr
  3. 統計類命令:stats, stats items, stats slabs, stats sizes
  4. 清理命令: flush_all

一、實驗環境

軟件                        IP                系統
memcached                192.168.14.212    centos7
nginx_php                192.168.14.213    centos7
mysql                    192.168.14.214    centos7

以下所有主機都先關閉防火牆和selinux

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable  firewalld
[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

二、安裝memcached服務端(192.168.14.212)

1、安裝libevent

#Memcached依賴於libevent API,libevent是個程序庫,它將Linux的epoll、BSD類操作系統的kqueue等事件處理功能封裝成統一的接口,即使對服務器的連接數增加,也能發揮O(1)的性能

[root@memcached ~]# yum -y install gcc gcc-c++
[root@memcached ~]# cd /usr/local/src/
[root@memcached src]# wget http://ftp.lfs-matrix.net/pub/blfs/conglomeration/libevent/libevent-2.1.8-stable.tar.gz
[root@memcached src]# tar -zxvf libevent-2.1.8-stable.tar.gz
[root@memcached src]# cd libevent-2.1.8-stable
[root@memcached libevent-2.1.8-stable]# ./configure  --prefix=/usr/local/libevent
[root@memcached libevent-2.1.8-stable]# make
[root@memcached libevent-2.1.8-stable]# make install

2、安裝memcached

[root@memcached ~]# cd /usr/local/src/
[root@memcached src]# wget http://www.memcached.org/files/memcached-1.4.39.tar.gz
[root@memcached src]# tar -zxvf memcached-1.4.39.tar.gz 
[root@memcached src]# cd memcached-1.4.39

#配置生成Makefile文件時,指定libevent的編譯安裝路徑
[root@memcached memcached-1.4.39]# ./configure  --prefix=/usr/local/memcache --with-libevent=/usr/local/libevent
[root@memcached memcached-1.4.39]# make
[root@memcached memcached-1.4.39]# make install

3、設置環境變量

#簡單通過軟鏈接的方式設置環境變量
[root@memcached ~]# ln -s /usr/local/memcache/bin/* /usr/local/bin/

4、啓動並驗證端口

[root@memcached ~]# /usr/local/memcache/bin/memcached  -d -m 256 -u root -l 192.168.14.212 -p 11211 -c 1024 -P /usr/local/memcache/memcached.pid
[root@memcached ~]# ss -ntlp
State       Recv-Q Send-Q                                     Local Address:Port                                                    Peer Address:Port              
LISTEN      0      128                                       192.168.14.212:11211                                                              *:*                   users:(("memcached",pid=23180,fd=26))

參數說明:
-d:啓動一個守護進程,如果前臺運行,配合-vv參數,可查看調試信息(主要是存儲的信息);
-m:分配給memcached使用的內存數量,單位是MB;
-u:運行memcached的用戶,比如root或者memcached,建議採用非root賬號;
-l:服務器監聽地址,不設置時默認監聽本地所有IP地址;
-p:設置memcached的監聽端口,默認爲11211;
-c:設置最大併發連接數,默認是1024;
-P:設置保存memcached的pid文件;
-v:輸出警告和錯誤信息;
-vv:打印客戶端的請求和返回信息;
-h:打印幫助信息;
-i:打印memcached和libevent的版權信息。

5、設置開機啓動

根據編譯安裝路徑調整可執行文件和pid文件

[root@memcached ~]# vim /etc/rc.d/init.d/memcached

#!/bin/sh
#
# memcached: MemCached Daemon
#
# chkconfig: - 90 25
# description: MemCached Daemon
#
# Source function library.

. /etc/rc.d/init.d/functions
. /etc/sysconfig/network

#注意:可執行文件路徑根據情況調整
MEMCACHED="/usr/local/memcache/bin/memcached"

start()
{
echo -n $"Starting memcached: "
#注意:參數根據情況調整
daemon $MEMCACHED -u root -d -m 256 -p 11211 -c 1024 -P /usr/local/memcache/memcached.pid
echo
}

stop()
{
echo -n $"Shutting down memcached: "
killproc memcached
echo
}

[ -f $MEMCACHED ] || exit 0

# See how we were called.
case "$1" in
start)
start
;;

stop)
stop
;;

restart|reload)
stop
start
;;

condrestart)
stop
start
;;

*)

echo $"Usage: $0 {start|stop|restart|reload|condrestart}"
exit 1
esac
exit 0


[root@memcached ~]# chmod 755 /etc/rc.d/init.d/memcached 
[root@memcached ~]# chkconfig --level 35 memcached on

三、安裝nginx+PHP(192.168.14.213)

1、安裝nginx依賴,準備編譯安裝環境

[root@nginx_php ~]# yum -y install gcc gcc-c++ zlib zlib-devel openssl openssl-devel pcre-devel
[root@nginx_php ~]# groupadd nginx
[root@nginx_php ~]# useradd nginx -g nginx -s /sbin/nologin -M

編譯安裝

[root@nginx_php ~]# cd /usr/local/src/
[root@nginx_php src]# wget http://nginx.org/download/nginx-1.12.0.tar.gz
[root@nginx_php src]# tar -zxvf nginx-1.12.0.tar.gz 
[root@nginx_php nginx-1.12.0]# ./configure  --user=nginx --group=nginx --prefix=/usr/local/nginx --without-http_memcached_module --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module
[root@nginx_php nginx-1.12.0]# make
[root@nginx_php nginx-1.12.0]# make install
[root@nginx_php nginx-1.12.0]# chown -R nginx:nginx /usr/local/nginx

設置開機啓動


#/sbin/nginx路徑一定要跟編譯安裝路徑一致,否則腳本無法使用
[root@nginx_php ~]# vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target remote-fs.target nss-lookup.target
 
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/bin/rm -f /usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target
 
[root@nginx_php ~]# systemctl start nginx
[root@nginx_php ~]# systemctl enable nginx
[root@nginx_php ~]# ss -ntlp |grep 80
LISTEN     0      128          *:80                       *:*                   users:(("nginx",pid=26272,fd=6),("nginx",pid=26271,fd=6))

2、安裝配置php

安裝依賴

[root@nginx_php ~]# yum install -y autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libpng libpng-devel libxml2 libxml2-devel zlib zlib-devel xml2 xml2-devel openssl openssl-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl libcurl-devel gdbm-devel db4-devel libXpm libXpm-devel libX11 libX11-devel gd-devel gmp-devel readline-devel libxslt-devel expat-devel xmlrpc-c xmlrpc-c-devel

編譯安裝libmcrypt庫

[root@nginx_php ~]# cd /usr/local/src/
[root@nginx_php src]# wget http://nchc.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
[root@nginx_php src]# tar -zxvf libmcrypt-2.5.8.tar.gz
[root@nginx_php src]# cd libmcrypt-2.5.8   
[root@nginx_php libmcrypt-2.5.8]# ./configure
[root@nginx_php libmcrypt-2.5.8]# make
[root@nginx_php libmcrypt-2.5.8]# make install

編譯安裝php

[root@nginx_php ~]# cd /usr/local/src/
[root@nginx_php src]# wget http://php.net/distributions/php-5.6.31.tar.bz2
[root@nginx_php src]# tar -jxvf php-5.6.31.tar.bz2
[root@nginx_php src]# cd php-5.6.31
[root@nginx_php php-5.6.31]# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql --with-pdo-mysql --with-mysqli --with-openssl --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib-dir --with-mhash --with-mcrypt --with-bz2 --enable-zip --with-curl --with-gettext --with-iconv --with-xmlrpc --enable-fpm --enable-sockets --enable-sysvshm --enable-mbstring --enable-pdo --enable-libxml --enable-xml --enable-soap --enable-session --enable-ctype --enable-ftp --enable-bcmath --enable-shmop --enable-inline-optimization --enable-opcache --enable-mbregex --enable-pcntl --enable-cgi --enable-wddx
[root@nginx_php php-5.6.31]# make
[root@nginx_php php-5.6.31]# make install

php.ini文件

[root@nginx_php ~]# cp /usr/local/src/php-5.6.31/php.ini-production /usr/local/php/etc/php.ini
[root@nginx_php ~]# ln -s /usr/local/php/etc/php.ini /etc/php.ini

php-fpm.conf文件,取消”;pid = run/php-fpm.pid”的註釋,同時修改運行賬號通nginx服務的運行賬號一致

[root@nginx_php ~]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
[root@nginx_php ~]# ln -s /usr/local/php/etc/php-fpm.conf /etc/php-fpm.conf
[root@nginx_php ~]# sed -i 's|;pid = run/php-fpm.pid|pid = run/php-fpm.pid|g' /usr/local/php/etc/php-fpm.conf
[root@nginx_php etc]# sed -i 's|user = nobody|user = nginx|g' /usr/local/php/etc/php-fpm.conf
[root@nginx_php etc]# sed -i 's|group = nobody|group = nginx|g' /usr/local/php/etc/php-fpm.conf

設置開機啓動

[root@nginx_php ~]# cp /usr/local/src/php-5.6.31/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
[root@nginx_php ~]# chown nginx:nginx /etc/rc.d/init.d/php-fpm
[root@nginx_php ~]# chmod 755 /etc/rc.d/init.d/php-fpm
[root@nginx_php ~]# chkconfig --level 35 php-fpm on

整合nginx支持php

[root@nginx_php ~]# vim /usr/local/nginx/conf/nginx.conf
#第2行,取消user的註釋,修改運行賬號爲nginx nginx,與/usr/local/php/etc/php-fpm.d/www.conf中的user/group配置一致
user nginx nginx;
#第45行,添加index.php
index index.html index.htm index.php;
#第65~71行,取消FastCGI server部分location的註釋;注意fastcgi_param行的參數,改爲$document_root$fastcgi_script_name,或者使用絕對路徑
#pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;    #這裏也修改
include fastcgi_params;
}

驗證測試

[root@nginx_php ~]# echo -e "<?php\nphpinfo();\n?>" > /usr/local/nginx/html/index.php
[root@nginx_php ~]# chown -R nginx:nginx /usr/local/nginx/html/
[root@nginx_php ~]# chmod -R 700 /usr/local/nginx/html/
[root@nginx_php ~]# systemctl restart nginx
[root@nginx_php ~]# service php-fpm start
Starting php-fpm  done

3、安裝libmemcached

memcached在1.2.4版本(含)以上增加了CAS(Check and Set)協議,即對同一key的多進程的併發處理問題;
類比數據庫,如果同時有多個進程對同一張表的同一數據進行更新,數據庫可以鎖定整張表,也可以鎖定表內某一行數據,memcached的CAS功能與此相似;
但php-memcache擴展不支持CAS,需要先安裝php-memcached擴展(注意與php-memcache擴展的區別),php-memcached擴展基於libmemcached,所以要先安裝libmemcached,即php-memcached的庫。

#libmemcached版本:1.0.18
[root@nginx_php ~]# cd /usr/local/src/
[root@nginx_php src]# wget https://launchpadlibrarian.net/165454254/libmemcached-1.0.18.tar.gz

#編譯安裝,生成Makefile文件時,切記“--with-memcached”參數
[root@nginx_php src]# tar -zxvf libmemcached-1.0.18.tar.gz.tar
[root@nginx_php src]# cd libmemcached-1.0.18
[root@nginx_php libmemcached-1.0.18]# ./configure --prefix=/usr/local/libmemcached --with-memcached
[root@nginx_php libmemcached-1.0.18]# make
[root@nginx_php libmemcached-1.0.18]# make install

4、安裝php-memcached(php-memcached和php-memcache二選一安裝即可)

#php-memcached版本:2.2.0(3.0.0及以上版本針對php7.0及以上版本)
#http://pecl.php.net/package/memcached
#php擴展分原生擴展與第三方擴展,在php的源碼解壓包下的“ext/”目錄下可查看所有的原生擴展,php-memcached及php-memcache屬於第三方擴展。
[root@nginx_php ~]# cd /usr/local/src/
[root@nginx_php src]# wget http://pecl.php.net/get/memcached-2.2.0.tgz

#編譯安裝
#phpize: 用於擴展php模塊,通過phpize可以建立php的外掛模塊
#--enable-memcached: 配置編譯環境,編譯器編譯php源碼時使能相應擴展
#--with-php-config:指定php-config文件路徑
#--with-libmemcached-dir:指定libmemcached安裝目錄
#--disable-memcached-sasl:去使能sasl認證,因爲沒有預安裝相應功能
#make:把源碼編譯成xxxxx.so文件
#make install: 把xxxxx.so文件移動到當前安裝php的擴展目錄
[root@nginx_php src]# tar -zxvf memcached-2.2.0.tgz
[root@nginx_php src]# cd memcached-2.2.0
[root@nginx_php memcached-2.2.0]# /usr/local/php/bin/phpize 
[root@nginx_php memcached-2.2.0]# ./configure --enable-memcached --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached --disable-memcached-sasl
[root@nginx_php memcached-2.2.0]# make
[root@nginx_php memcached-2.2.0]# make install

5、安裝php-memcache(php-memcached和php-memcache二選一安裝即可)

#php-memcached版本:2.2.7(stable version)
#http://pecl.php.net/package/memcache

#下載php-memcache
[root@nginx_php ~]# cd /usr/local/src/
[root@nginx_php src]# wget http://pecl.php.net/get/memcache-2.2.7.tgz

#編譯安裝
[root@nginx_php src]# tar -zxvf memcache-2.2.7.tgz
[root@nginx_php src]# cd memcache-2.2.7
[root@nginx_php memcache-2.2.7]# /usr/local/php/bin/phpize 
[root@nginx_php memcache-2.2.7]# ./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config
[root@nginx_php memcache-2.2.7]# make
[root@nginx_php memcache-2.2.7]# make install

6、安裝php-intl(原生擴展樣例,非必須項)

#php-intl版本:3.0.0
#http://pecl.php.net/package/intl

#php-intl是php國際化擴展,是ICU庫的一個包裝器,安裝php-intl擴展前要先安裝ICU庫
[root@nginx_php ~]# yum install -y icu libicu libicu-devel

#下載php-intl;
#通過查看php源碼解壓包下的“ext/”目錄,php-intl屬於原生擴展,理論上可以不用下載,直接在“ext/”下相應擴展目錄下編譯安裝即可;
[root@nginx_php ~]# cd /usr/local/src/
[root@nginx_php src]# wget http://pecl.php.net/get/intl-3.0.0.tgz

#編譯安裝
[root@nginx_php src]# tar -zxvf intl-3.0.0.tgz
[root@nginx_php src]# cd intl-3.0.0
[root@nginx_php intl-3.0.0]# /usr/local/php/bin/phpize 
[root@nginx_php intl-3.0.0]# ./configure --enable-intl --with-php-config=/usr/local/php/bin/php-config
[root@nginx_php intl-3.0.0]# make
[root@nginx_php intl-3.0.0]# make install

7、啓用擴展

php啓用擴展有2種方式(本文介紹方式1):

  1. 直接在php.ini文件中添加擴展如“extension = xxx.so”;
  2. 單獨創建ini文件,然後php.ini調用這些創建的文件即可(可通過php5enmod工具支持或者手工配置)。
#修改php.ini,添加擴展,可在第732行後添加擴展(非必須);
#第732行的”extension_dir”路徑修改爲絕對路徑(非必須,相對路徑也可),即以上各擴展“make install”之後的安裝路徑
[root@memcached ~]# vim /usr/local/php/etc/php.ini
[Intl]
extension = intl.so
[Memcached]
extension = memcached.so
[Memcache]
extension = memcache.so

[root@memcached ~]# service php-fpm restart

8、驗證擴展是否安裝成功

#查看擴展模塊方式
[root@nginx_php ~]# /usr/local/php/bin/php -m | grep -E 'memcache|intl'

瀏覽器登錄查看php是否加載http://192.168.14.213/index.php

9、php-memcache訪問memcached服務器

#修改index.php
[root@nginx_php ~]# cd /usr/local/nginx/html/
[root@nginx_php html]# cp index.php index.php.bak
[root@nginx_php html]# echo "" > index.php
[root@nginx_php html]# vim index.php

<?php
$memcache = new Memcache;                                            #創建一個memcache對象
$memcache->connect('192.168.14.212', 11211) or die ("Could not connect"); #連接memcached服務器IP地址
$memcache->set('key', 'memcache-test_192.168.14.212');               #設置1個變量到內存中,key=key, value=memcache-test
$get_value = $memcache->get('key');                                  #從內存取出key的value
echo $get_value;                                                     #回顯
?> 

四、安裝二進制mariadb(192.168.14.214)

1、準備安裝環境

[root@mysql ~]#  groupadd -r -g 306 mysql
[root@mysql ~]# useradd -g 306 -r -u 306 mysql
[root@mysql ~]# mkdir -p /mydata/data
[root@mysql ~]# chown -R mysql.mysql  /mydata/data/
[root@mysql ~]# chmod o-rwx /mydata/data/
[root@mysql ~]# cd /usr/local/src/
[root@mysql src]# wget https://mirrors.tuna.tsinghua.edu.cn/mariadb//mariadb-10.2.26/bintar-linux-x86_64/mariadb-10.2.26-linux-x86_64.tar.gz

2、二進制包必須解壓到/usr/local,然後創建軟連接命名爲mysql(保留版本名)

[root@mysql src]# tar -zxvf mariadb-10.2.26-linux-x86_64.tar.gz  -C /usr/local/
[root@mysql src]# cd /usr/local/
[root@mysql local]# ln -sv mariadb-10.2.26-linux-x86_64 mysql

3、初始化並添加 到環境變量,方便啓動

[root@mysql local]# cd mysql/
[root@mysql mysql]# ./scripts/mysql_install_db  --user=mysql --datadir=/mydata/data/
[root@mysql mysql]# echo $?
0
[root@mysql mysql]# vim /etc/profile.d/mysql.sh
    export PATH=$PATH:/usr/local/mysql/bin
[root@mysql mysql]# source /etc/profile
[root@mysql mysql]# chown -R root:root /usr/local/mysql/*
[root@mysql mysql]# cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld
[root@mysql mysql]# chkconfig --add mysqld

4、拷貝配置文件並添加存儲路徑

[root@mysql mysql]# cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y
[root@mysql mysql]# vim /etc/my.cnf
[mysqld]
    datadir = /mydata/data

#啓動mysql
[root@mysql mysql]# systemctl start mysqld
[root@mysql mysql]# ss -ntlp|grep 3306
LISTEN     0      80          :::3306                    :::*                   users:(("mysqld",pid=14640,fd=21))

五、測試memcache緩存數據庫數據(192.168.14.214)

1、在mysql服務器上創建測試表

[root@mysql mysql]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 10.2.26-MariaDB-log MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database testdb1;
Query OK, 1 row affected (0.01 sec)

MariaDB [(none)]> use testdb1;
MariaDB [testdb1]> create table test1(id int not null auto_increment,name varchar(20) default null,primary key (id)) engine=innodb auto_increment=1 default charset=utf8;
Query OK, 0 rows affected (0.08 sec)

MariaDB [testdb1]> insert into test1(name) values('tom1'),('tom2'),('tom3'),('tom4'),('tom5');
Query OK, 5 rows affected (0.01 sec)
Records: 5  Duplicates: 0  Warnings: 0

MariaDB [testdb1]> select * from test1;
+----+------+
| id | name |
+----+------+
|  1 | tom1 |
|  2 | tom2 |
|  3 | tom3 |
|  4 | tom4 |
|  5 | tom5 |
+----+------+
5 rows in set (0.00 sec)

MariaDB [testdb1]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [testdb1]> quit
Bye

2、用於php腳本測試memcache是否緩存數據成功,需要爲這個腳本添加一個只讀的數據庫用戶

MariaDB [testdb1]> grant select on testdb1.* to user@'%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)

六、在nginx_php主機上創建php腳本(192.168.14.213)

[root@nginx_php ~]# vim /usr/local/nginx/html/test6.php
<?php
$memcachehost = '192.168.14.212';
$memcacheport = 11211;
$memcachelife = 60;
$memcache = new Memcache;
$memcache->connect($memcachehost,$memcacheport) or die ("Could not connect");
$query="select * from test1 limit 10";
$key=md5($query);
if(!$memcache->get($key))
{
 $conn=mysql_connect("192.168.14.214","user","123456");
 mysql_select_db(testdb1);
 $result=mysql_query($query);
while ($row=mysql_fetch_assoc($result))
 {
 $arr[]=$row;
 }
 $f = 'mysql';
 $memcache->add($key,serialize($arr),0,30);
 $data = $arr ;
}
else{
 $f = 'memcache';
 $data_mem=$memcache->get($key);
 $data = unserialize($data_mem);
}
echo $f;
echo "<br>";
echo "$key";
echo "<br>";
//print_r($data);
foreach($data as $a)
{
echo "number is <b><font color=#FF0000>$a[id]</font></b>";
echo "<br>";
echo "name is <b><font color=#FF0000>$a[name]</font></b>";
echo "<br>";
}
?>

第一次用戶訪問會先去尋找memcached服務器,如果memcached服務器沒有數據,那麼就會去Mysql數據庫中調用數據,當在回給用戶的時候同時memcached已經做了緩存,那麼在第二次用戶訪問數據時,就可以直接去找memcached,不會在mysql數據庫上做任何操作,從而減輕了mysql數據庫的負擔。

1、第一次訪問

2、第二次訪問

七、memcached圖形化管理工具(192.168.14.213)

1、下載memadmin

[root@nginx_php src]# wget http://www.junopen.com/memadmin/memadmin-1.0.12.tar.gz

2、解壓到nginx網頁目錄

[root@nginx_php src]# tar -zxvf memadmin-1.0.12.tar.gz -C /usr/local/nginx/html/

3、客戶端瀏覽器訪問,默認用戶名密碼admin/admin

也可以修改登錄用戶名和密碼

[root@nginx_php ~]# head  -5 /usr/local/nginx/html/memadmin/config.php 
<?php
if (!defined('IN_MADM')) exit();

$config['user'] = "admin"; // your username
$config['passwd'] = "admin"; // your password

4、查看命中率

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章