Memcache
創新互聯建站長期為1000+客戶提供的網站建設服務,團隊從業經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態環境。為望花企業提供專業的成都網站設計、網站建設、外貿網站建設,望花網站改版等技術服務。擁有10多年豐富建站經驗和眾多成功案例,為您定制開發。
Memcache的作用網上資料都講的很好,說簡單點就是減輕讀取數據庫的壓力,原理也很簡單:
被請求的數據會先到memcache里去取,如果沒有就去數據庫里取,順便給memcache帶一份。
每次更新數據也先更新memcache里的數據,如果沒有則更新數據庫,同時更新memcache。
因此需要注意的是這個數據是易失去性存儲的。
模式和端口
Memcache是一個基于C/S的結構:
服務端:使用Memcached軟件
客戶端:使用Memcache插件 (這個插件是結合后端語言比如php python java)
服務端口:11211(可改)
軟件清單:
libevent依賴庫 http://www.libevent.org/
memcache插件 http://pecl.php.net/package/memcache/
memcached服務 http://www.memcached.org/
lamp環境 yum -y install httpd php php-MySQL mysql-server
操作系統 CentOS-6.5(x86_64)
1.將上傳相關軟件包,安裝lamp環境
yum -y install httpd php php-mysql mysql-server /etc/init.d/httpd start echo "<?php phpinfo()?>" > /var/www/html/index.php
然后用瀏覽器訪問查看php信息,在信息里面是找不到memcache的
2.安裝libevent插件
tar xf libevent-2.0.22-stable.tar.gz cd libevent-2.0.22-stable ./configure --prefix=/usr/local/libevent && make && make install
3.安裝memcached服務端
tar xf memcached-1.4.36.tar.gz cd memcached-1.4.36 ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent/ make && make install
安裝好后會在/usr/local/memcached/bin/目錄下生成memcached
4.配置環境變量
cd /etc/profile.d/ vim mem.sh export PATH="/usr/local/memcached/bin:$PATH" #寫入profile文件開機自動導入 memcached -m 32 -p 11211 -d -c 8192 -u root #m分出內存大小 p 端口 d 混合模式 c 最大連接數 netstat -anptu | grep memcached #查看是否啟動,運行多實例更改端口即可 free -m #可以看到內存越來越少,因為被分配出去了 ps -aux | grep memcached #查看進程pid是多少 kill -9 1234 #關閉memcached服務 pkill memcached #同上
5.memcached使用
yum -y install nc telnet
1)使用nc命令連接memcache
printf "set first 0 30 5\r\nmmmmm\r\n" | nc 127.0.0.1 11211 #存數據 (字段分別為 key,標志,效期,長度,值 ) printf "get first\r\n" | nc 127.0.0.1 11211 #取數據
2)使用telnet命令連接memcache
telnet 127.0.0.1 11211 #然后就可以使用相關的memcached命令了
6.下面是關于memcached相關的操作命令
add key1 0 30 3 #添加數據30為效期(如果寫0表示永不過期) 3為大小
set key1 0 30 3 #更新數據,不存在會自動創建
replace key1 0 30 3 #更新數據,不存在會報錯
delete key1 #刪除數據
get key1 #獲取數據
gets key 1 #獲取更多信息
stats setting #查看配置信息
stats slabs #查看slab
stats items #查看item
stats size #查看大小
7.安裝memcache客戶端php插件
安裝phpize命令可以為php添加新模塊
如果不知道是什么包可以使用 yum provides */phpize
yum -y install php-devel tar xf memcache-2.2.7.tgz cd memcache-2.2.7 phpize #打模塊,生成configure等文件 which php-config #查看php-config路徑位置 ./configure --enable-memcache --with-php-config=/usr/bin/php-config make && make install
安裝號后模塊會被安裝置/usr/lib64/php/modules/memcache.so
cd /etc/php.d/ cp mysql.ini memcache.ini #vim進行編輯將extension的值設置成memcache.so
重啟服務后可以看到php已經支持了memcache模塊了
8.后面可以結合php網站測試數據庫相關
tar xf memcache_page.tar.gz -C /var/www/html/ cd !$
測試頁面有 mysql_connect.php 編輯一下
因此需要先把mysql的用戶設置一下
/etc/init.d/mysqld start mysql_secure_installation
或者自己在數據庫里
grant all on *.* to 'root'@'127.0.0.1' identified by '123456' flush privileges
然后瀏覽器訪問mysql_connect.php
對接成功
這里可以閱讀read.php和write.php了解memcache的讀寫原理
read.php
<?php$memcachehost = '192.168.1.113';$memcacheport = 11211;$memcachelife = 60; #memcache默認有效期$memcache = new Memcache;$memcache->connect($memcachehost,$memcacheport) or die ("Could not connect"); #連接memcache
write.php
<?php$memcachehost = '192.168.1.113';$memcacheport = 11211;$memcachelife = 60;$memcache = new Memcache;$memcache->connect($memcachehost,$memcacheport) or die ("Could not connect");$num=$_POST["num"];$db=db1;$tb=T1;$query="insert into $tb values($num)";#$key=md5($query);$key=md5($num);if(!$memcache->get($key)) //先嘗試更新memcache,如果不存在,則再去更新數據庫,同時更新存儲到memcachce{ $conn=mysql_connect("127.0.0.1","root","123456"); mysql_select_db($db); $result=mysql_query($query); while ($row=mysql_fetch_assoc($result)) { $arr[]=$row; } $f = 'mysql'; $memcache->add($key,serialize($arr),0,30); //mysql 插入成功后,插入 memcached $data = $arr ;#}#else{ $f1 = 'memcache'; $data_mem=$memcache->get($key); $data = unserialize($data_mem); }echo "$f $f1 $num";echo "<br>";?>
關于php memcache簡單用法參見http://www.cnblogs.com/demonxian3/p/6868361.html
上面兩個php里可以看到調用了數據庫的db1 和 表T1因此需要創建一下
seq 1 999 > /tmp/sum #創建1-999的測試數據
連接數據庫導入數據
create database db1; create T1(id int)engine=innodb; load data infile '/tmp/sum' into table T1; #導入測試數據科普一下:使用history查看歷史命令,輸入!+數字可以執行編號的那條命令
!111
用瀏覽器來訪問那個測試頁面
測試讀取數據,從數據庫里查詢出id為5的值
后退再去取一次
測試寫入數據
最后給大家推薦一款很好用的memcache管理工具:memadmin php寫的
文章標題:Memcache服務搭建
網頁網址:http://m.newbst.com/article34/jesese.html成都網站建設公司_創新互聯,為您提供做網站、用戶體驗、微信小程序、網站收錄、企業建站、自適應網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯