亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

LAMP+Memcached高性能緩存服務

發布時間:2020-06-16 08:54:48 來源:網絡 閱讀:1640 作者:藍月CC 欄目:建站服務器

Memcached簡介

Memcached是高性能的分布式內存緩存服務器,通過在內存里維護一個統一的巨大的hash表,它能夠用來存儲各種格式的數據,包括圖像、視頻、文件以及數據庫檢索的結果等, 由國外社區網站 LiveJournal 的開發團隊開發。一般的使用目的是,通過緩存數據庫查詢結果,減少數據庫訪問次數,以提高動態Web應用的速度、提高可擴展性。
官方網站:http://www.danga.com/memcached/

常用典型架構如下:

LAMP+Memcached高性能緩存服務

當Web客戶端發送請求到web服務器的應用程序時,應用程序會通過調用Memcached API客戶端程序庫接口去連接 Memcached服務器,進而查詢數據。
1、如果此時web客戶端所請求的數據已經在 Memcached服務端中緩存,則 Memcached服務端會將數據返回給Web客戶端;
2、如果數據不存在,則會將Web客戶端請求發送至MySQL數據庫,由數據庫將請求的數據返回給 Memcached以及Web客戶端,與此同時Memcached服務器也會將數據進行保存,方便用戶下次使用。

Memcached特點

  • 協議簡單
  • 基于libevent的事件處理
  • 內置內存存儲方式
  • memcached不互相通信的分布式
    libevent: http://www.monkey.org/~provos/libevent/
協議簡單

memcached的服務器客戶端通信并不使用復雜的XML等格式, 而使用簡單的基于文本行的協議。因此,通過telnet 也能在memcached上保存數據、取得數據。下面是例子。
$ telnet localhost 11211
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
set foo 0 0 3 (保存命令)
bar (數據)
STORED (結果)
get foo (取得命令)
VALUE foo 0 3 (數據)

基于libevent的事件處理

libevent是個程序庫,它將Linux的epoll、BSD類操作系統的kqueue等事件處理功能 封裝成統一的接口。即使對服務器的連接數增加,也能發揮O(1)的性能。 memcached使用這個libevent庫,因此能在Linux、BSD、Solaris等操作系統上發揮其高性能。

內置內存存儲方式

為了提高性能,memcached中保存的數據都存儲在memcached內置的內存存儲空間中。 由于數據僅存在于內存中,因此重啟memcached、重啟操作系統會導致全部數據消失。 另外,內容容量達到指定值之后,就基于LRU(Least Recently Used)算法自動刪除不使用的緩存。 memcached本身是為緩存而設計的服務器,因此并沒有過多考慮數據的永久性問題。

數據存儲方式:Slab Allocation
LAMP+Memcached高性能緩存服務

Slab Allocation即按組分配內存,每次先分配一個slab,相當于一個大小為1MB的頁,然后在1MB的空間里根據數據劃分大小相同的chunk,該方法可以有效解決內存碎片問題,但可能會對空間有所浪費。

memcached不互相通信的分布式

memcached盡管是“分布式”緩存服務器,但服務器端并沒有分布式功能。 各個memcached不會互相通信以共享信息。

Memcached緩存機制和分布式

緩存機制:
LAMP+Memcached高性能緩存服務

Memcached是一款非常出色的緩存軟件,當程序寫入緩存數據請求時, Memcached的API接口將Key輸入路
由算法模塊路由到集群中一臺服務器,之后由API接口與服務器進行通信,完成一次分布式緩存寫入。

分布式
LAMP+Memcached高性能緩存服務

Memcached分布式部署主要依賴于 Memcached的客戶端來實現,多個 Memcached服務器是獨立的。分布式數據如何存儲是由路由算法所決定的。當數據到達客戶端程序庫時,客戶端的算法就依據路由算法來決定保存的Memcached服務器。讀取數據時,客戶端依據保存數據時的路由算法選中和存儲數據時相同的服務器來讀取數據。

實驗環境

本實驗用2臺CentOS7:

主機 IP地址 角色 主要軟件包
Memcached 192.168.37.128 Memcached? 服務器 libevent-2.1.8-stable.tar.gzmemcached-1.5.6.tar.gz
Memcached ?API 192.168.37.130 Memcached? API客戶端 http-2.4.29.tar.gz;mysql-5.6.26.tar.gz;php-5.6.11.tar.bz2;memcache-2.2.7.tar.gz

實驗部署

一、memcached服務端

1、安裝編譯環境

yum install gcc gcc-c++ make

2、解壓安裝包

tar zxvf memcached-1.5.6.tar.gz -C /opt
tar zxvf libevent-2.1.8-stable.tar.gz -C /opt #libevent:事件通知庫

3、手工編譯安裝libevent、memcached

cd /opt/libevent-2.1.8-stable/
./configure --prefix=/usr/local/libevent
make && make install

cd /opt/memcached-1.5.6/
./configure \
--prefix=/usr/local/memcached \
--with-libevent=/usr/local/libevent/
make && make install

4、建立軟連接

ln -s /usr/local/memcached/bin/* /usr/local/bin

5、開啟memcached

systemctl stop firewalld.service
setenforce 0
memcached -d -m 32m -p 11211 -u root
#-d: 指定守護進程 -m:緩存大小 -p:端口 -u:指定管理用戶
netstat -ntap | grep memc

LAMP+Memcached高性能緩存服務

二、LAMP搭建

(一)Apache搭建
1、安裝環境包

yum install gcc gcc-c++ make pcre-devel expat-devel perl -y

2、解壓安裝包

tar xzvf http-2.4.29.tar.gz -C /opt
tar xzvf apr-1.4.6.tar.gz -C /opt #支持Apache上層應用跨平臺,提供底層接口庫
tar xzvf apr-util-1.4.1.tar.gz -C /opt
mv apr-1.6.2/ httpd-2.4.29/srclib/apr
mv apr-util-1.6.0/ httpd-2.4.29/srclib/apr-util

3、手工編譯安裝

cd /opt/httpd-2.4.29
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi

make && make install

4、編輯啟動腳本

grep -v "#" /usr/local/httpd/bin/apachectl > /etc/init.d/httpd     #過濾配置文件中注釋信息,拷貝到服務程序目錄下
vi /etc/init.d/httpd       #在文件最前面插入下面的行
#!/bin/sh
    # chkconfig:2345 85 21
    #description:Apache is a World Wide Web server.

chmod +x /etc/init.d/httpd
chkconfig --add httpd            **#將httpd加入系統服務**

5、優化服務,使系統識別命令

ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf
ln -s /usr/local/httpd/bin/* /usr/local/bin

6、編輯httpd主配置文件

vim /usr/local/httpd/conf/httpd.conf     
  ServerName www.yun.com:80
  Listen 192.168.37.130:80

7、開啟httpd服務

systemctl stop firewalld.service
setenforce 0
apachectl -t #檢查語法
service httpd start

LAMP+Memcached高性能緩存服務

(二)Mysql搭建

1、安裝環境包

yum -y install ncurses-devel autoconf cmake

2、手工編譯安裝mysql

tar zxvf mysql-5.6.26.tar.gz -C /opt #解壓軟件包
cd /opt/mysql-5.6.26
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DSYSCONFIDIR=/etc \
-DMYSQL_DATADIR=/home/mysql/ \
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock \
make && make install

3、添加系統服務

cp support-files/mysql.server /etc/init.d/mysqld #添加系統服務
chmod 755 /etc/init.d/mysqld #修改執行權限
chkconfig --add /etc/init.d/mysqld #將mysqld添加為系統服務
chkconfig mysqld --level 235 on #
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile #重新加載環境變量
useradd -s /sbin/nologin mysql #創建進程用戶mysql
chown -R mysql:mysql /usr/local/mysql/ #修改mysql的屬主、屬組

4、初始化數據庫

/usr/local/mysql/scripts/mysql_install_db \
--user=mysql \
--ldata=/var/lib/mysql \
--basedir=/usr/local/mysql \
--datadir=/home/mysql

5、建立軟連接

ln -s /var/lib/mysql/mysql.sock /home/mysql/mysql.sock

6、編輯配置文件

vi /etc/init.d/mysqld
    basedir=/usr/local/mysql
    datadir=/home/mysql

7、啟動mysql服務

service mysqld start
netstat -ntap | grep 3306

LAMP+Memcached高性能緩存服務

(三)php搭建

1、安裝環境包

yum -y install gd libpng pcre libxml2-devel libjpeg-devel libpng-devel fontconfig-devel openssl-devel bzip2-devel

2、手工編譯安裝php

tar xjvf php-5.6.11.tar.bz2 -C /opt
cd /opt/php-5.6.11
./configure \
--prefix=/usr/local/php5 \
--with-gd \
--with-zlib \
--with-apxs2=/usr/local/httpd/bin/apxs \
--with-mysql=/usr/local/mysql \
--with-config-file-path=/usr/local/php5 \
--enable-mbstring

make && make install

3、創建php配置文件

cp php.ini-development /usr/local/php5/php.ini

4、建立軟連接

ln -s /usr/local/php5/bin/ /usr/local/bin/
ln -s /usr/local/php5/sbin/
/usr/local/sbin

5、修改apache配置文件

vim /etc/httpd.conf
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps #/etc/httpd.conf 查看是否有php5

LAMP+Memcached高性能緩存服務

DirectoryIndex index.php index.html

LAMP+Memcached高性能緩存服務
6、修改apache首頁測試php

<?php
phpinfo();
?>
mv index.html index.php      #與httpd配置文件中設置要相同

6、重啟httpd服務,測試

訪問:http://192.168.37.130/index.php

LAMP+Memcached高性能緩存服務

(四)測試數據庫

1、創建數據庫test

create database a

2、test數據庫給auser用戶授權

grant all on a.* to 'auser'@'%' identified by '123123'; #授權
flush privileges; #刷新權限

LAMP+Memcached高性能緩存服務
3、再次修改apache首頁訪問數據庫

vim /usr/local/httpd/htdocs/index.php     
<?php
$link=mysql_connect('192.168.37.130','auser','123123');
if($link) echo "<h2>Success!!</h2>";
else echo "Fail!!";
mysql_close();
?>

4、重啟apache服務,測試數據庫連接
LAMP+Memcached高性能緩存服務

(五)安裝客戶端

1、安裝環境包
yum install autoconf -y
2、手工編譯安裝memcached

tar zxvf memcache-2.2.7.tar.gz -C /opt
cd /opt/memcache-2.2.7/       #注意:無configure

/usr/local/php5/bin/phpize   #增加為PHP模板后再對memcache進行配置

./configure \
--enable-memcache \
--with-php-config=/usr/local/php5/bin/php-config

make && make install
/usr/local/php5/lib/php/extensions/no-debug-zts-20131226/  #安裝完成后復制此行

LAMP+Memcached高性能緩存服務
3、為PHP添加memcached組件

vim /usr/local/php5/php.ini
   extension_dir = "ext"  #此行下添加
   extension_dir ="/usr/local/php5/lib/php/extensions/no-debug-zts-20131226/"                       #復制內容添加到此處
   extension = memcache.so

LAMP+Memcached高性能緩存服務
4、修改apache首頁

vim /usr/local/httpd/htdocs/index.php
<?php
$memcache = new Memcache();
$memcache->connect('192.168.37.128',11211);
$memcache->set('key','Memcache test Successful!',0,60);
$result = $memcache->get('key');
unset($memcache);
echo $result;
?>

5、重啟apache服務,測試
LAMP+Memcached高性能緩存服務

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

太保市| 太仆寺旗| 林甸县| 顺平县| 丰城市| 绥宁县| 花垣县| 临清市| 普兰店市| 衡阳市| 密山市| 太保市| 麻阳| 凌云县| 辽阳县| 岐山县| 安仁县| 卓资县| 巴青县| 黑龙江省| 清涧县| 赤壁市| 宁陕县| 勃利县| 灵璧县| 苍梧县| 石阡县| 察雅县| 洛隆县| 信宜市| 通许县| 郎溪县| 丹东市| 贵德县| 和政县| 会泽县| 宣恩县| 奉化市| 聂荣县| 中江县| 云和县|