主頁 > 知識庫 > Memcached構(gòu)建緩存服務(wù)器的方法

Memcached構(gòu)建緩存服務(wù)器的方法

熱門標(biāo)簽:智能手機(jī) 硅谷的囚徒呼叫中心 阿里云 檢查注冊表項 網(wǎng)站建設(shè) 使用U盤裝系統(tǒng) 美圖手機(jī) 百度競價點擊價格的計算公式

前言

許多Web應(yīng)用都將數(shù)據(jù)保存到關(guān)系型數(shù)據(jù)庫( RDBMS)中,應(yīng)用服務(wù)器從中讀取數(shù)據(jù)并在瀏覽器中顯示。

但隨著數(shù)據(jù)量的增大、訪問的集中,就會出現(xiàn)RDBMS的負(fù)擔(dān)加重、數(shù)據(jù)庫響應(yīng)惡化、 網(wǎng)站顯示延遲等重大影響。

Memcached/redis是高性能的分布式內(nèi)存緩存服務(wù)器,通過緩存數(shù)據(jù)庫查詢結(jié)果,減少數(shù)據(jù)庫訪問次數(shù),以提高動態(tài)Web等應(yīng)用的速度、 提高可擴(kuò)展性。

RDBMS即關(guān)系數(shù)據(jù)庫管理系統(tǒng)(Relational Database Management System)

1、簡介

 1、nosql產(chǎn)品: redis,mongodb,memcached.

   NOSQL名詞解釋:非關(guān)系型數(shù)據(jù)庫

(1)以鍵值對的方式存儲數(shù)據(jù)---(Key-Value)的形式

(2)緩存數(shù)據(jù)庫 —— 緩存服務(wù)器作用: 加快訪問速度 ,緩解數(shù)據(jù)庫壓力

2、NoSQL的優(yōu)點/缺點

優(yōu)點:
- 高可擴(kuò)展性
- 分布式計算
- 低成本
- 架構(gòu)的靈活性
- 沒有復(fù)雜的關(guān)系

缺點:
- 沒有標(biāo)準(zhǔn)化
- 有限的查詢功能(到目前為止)
- 最終一致是不直觀的程序

緩存服務(wù)器作用: 加快訪問速度 ,緩解數(shù)據(jù)庫壓力

3、關(guān)系型數(shù)據(jù)庫與非關(guān)系型數(shù)據(jù)庫的區(qū)別:---------面試高頻率問題

1.首先了解一下 什么是關(guān)系型數(shù)據(jù)庫?
關(guān)系型數(shù)據(jù)庫最典型的數(shù)據(jù)結(jié)構(gòu)是表,由二維表及其之間的聯(lián)系所組成的一個數(shù)據(jù)組織。
優(yōu)點:
1、易于維護(hù):都是使用表結(jié)構(gòu),格式一致;
2、使用方便:SQL語言通用,可用于復(fù)雜查詢;
3、復(fù)雜操作:支持SQL,可用于一個表以及多個表之間非常復(fù)雜的查詢。
缺點:
1、讀寫性能比較差,尤其是海量數(shù)據(jù)的高效率讀寫;
2、固定的表結(jié)構(gòu),靈活度稍欠;
3、高并發(fā)讀寫需求,傳統(tǒng)關(guān)系型數(shù)據(jù)庫來說,硬盤I/O是一個很大的瓶頸


2.什么非關(guān)系型數(shù)據(jù)庫呢?

非關(guān)系型數(shù)據(jù)是一種數(shù)據(jù)結(jié)構(gòu)化存儲方法的集合,可以是文檔或者鍵值對等

優(yōu)點:
1、格式靈活:存儲數(shù)據(jù)的格式可以是key,value形式、文檔形式、圖片形式等等,文檔形式、圖片形式等等,使用靈活,應(yīng)用場景廣泛,而關(guān)系型數(shù)據(jù)庫則只支持基礎(chǔ)類型。
2、速度快:nosql可以使用硬盤或者隨機(jī)存儲器作為載體,而關(guān)系型數(shù)據(jù)庫只能使用硬盤;
3、高擴(kuò)展性;
4、成本低:nosql數(shù)據(jù)庫部署簡單,基本都是開源軟件。

缺點:
1、不提供sql支持,學(xué)習(xí)和使用成本較高;
2、無事務(wù)處理;
3、數(shù)據(jù)結(jié)構(gòu)相對復(fù)雜,復(fù)雜查詢方面稍欠。

2、memcached

1、特點 

1.內(nèi)置內(nèi)存存儲方式-----------為了提高性能,memcached中保存的數(shù)據(jù)都存儲在memcache內(nèi)置的內(nèi)存存儲空間中。由于數(shù)據(jù)僅存在于內(nèi)存中,重啟操作系統(tǒng)會導(dǎo)致全部數(shù)據(jù)消失
2.簡單key/value存儲---------------服務(wù)器不關(guān)心數(shù)據(jù)本身的意義及結(jié)構(gòu),只要是可序列化數(shù)據(jù)即可。

                        存儲項由“鍵、過期時間、可選的標(biāo)志及數(shù)據(jù)”四個部分組成;

2、服務(wù)框架

原理

1、檢查客戶端的請求數(shù)據(jù)是否在memcached中,如有,直接把請求數(shù)據(jù)返回,不再對數(shù)據(jù)庫進(jìn)行任何操作,路徑操作為①②③⑦。

2、如果請求的數(shù)據(jù)不在memcached中,就去查數(shù)據(jù)庫,把從數(shù)據(jù)庫中獲取的數(shù)據(jù)返回給客戶端,同時把數(shù)據(jù)緩存一份到memcached中(memcached客戶端不負(fù)責(zé),需要程序明確實現(xiàn)),路徑操作為①②④⑤⑦⑥。

3.保持緩存的“新鮮性”,每當(dāng)數(shù)據(jù)發(fā)生變化的時候(比如,數(shù)據(jù)有被修改,或被刪除的情況下),要同步更新的緩存信息,確保用戶不會在緩存取到舊的數(shù)據(jù)。

3、配置安裝Memcached

memcache能存放多少數(shù)據(jù),取決于服務(wù)器本身的內(nèi)存有多大。

1.安裝----準(zhǔn)備一臺服務(wù)器

[root@memcached ~]# yum install memcached -y
[root@memcached ~]# systemctl start memcached #啟動

2.修改配置文件

[root@memcached ~]# vim /etc/sysconfig/memcached
PORT="11211" ---監(jiān)聽的端口,默認(rèn)11211.可以修改
USER="memcached" -----用戶
MAXCONN="1024" -----默認(rèn)并發(fā),可以修改
CACHESIZE="64" ------給的內(nèi)存。默認(rèn)是M
OPTIONS="" ----監(jiān)聽的網(wǎng)絡(luò)地址

然后把ip地址發(fā)給開發(fā)人員,開發(fā)的會使用api接口連接memcached.
測試:

[root@memcached ~]# yum install -y telnet #安裝telent
[root@memcached ~]# telnet 192.168.246.188 11211
Trying 192.168.246.188...
Connected to 192.168.246.188.
Escape character is '^]'.
set name 0 60 9 #設(shè)置名稱為name的key key 標(biāo)記位(id號) 過期時間 大小
helloword #給name的值
STORED #出現(xiàn)stoped表示已經(jīng)存儲成功。
get name #查詢key值
VALUE name 0 9
helloword
END
quit ---退出

參數(shù)解釋:
name:key的名字 自己定義
0:key的id號,需要和其他的key不一樣
60:緩存過期時間,單位為秒,0為永遠(yuǎn)
9:字符串最大長度

不用它的原因:存儲的數(shù)據(jù)類型單一,而且數(shù)據(jù)只能存儲在內(nèi)存中。無法實現(xiàn)數(shù)據(jù)的持久化,服務(wù)器重啟,數(shù)據(jù)將消失

=================================================================
擴(kuò)展:安裝php支持memcached的擴(kuò)展模塊:
安裝php7.0

[root@memcached ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
[root@memcached ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
[root@memcached ~]# yum -y install php70w.x86_64 php70w-cli.x86_64 php70w-common.x86_64 php70w-gd.x86_64 php70w-ldap.x86_64 php70w-mbstring.x86_64 php70w-mcrypt.x86_64 php70w-mysql.x86_64 php70w-pdo.x86_64 php70w-devel zlib-devel php70w-fpm libmemcached php70w-pecl-memcached
[root@memcached ~]# yum install -y make gcc zlib-devel libmemcached-devel git

下載PHP Memcache 擴(kuò)展包

安裝nginx略,配置nginx的yum源。測試訪問php的頁面。
[root@memcached ~]# vim /etc/nginx/conf.d/nginx.conf
server {
 listen 80;
 server_name localhost;
​
 location ~ \.php$ {
 root /usr/share/nginx/html;
 fastcgi_pass 127.0.0.1:9000;
 fastcgi_index index.php;
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 include fastcgi_params;
 }
}
編輯php頁面
[root@memcached html]# vim /usr/share/nginx/html/index.php
<?php
phpinfo();
?>
重啟nginx
啟動php-fpm
瀏覽器訪問

到此這篇關(guān)于Memcached構(gòu)建緩存服務(wù)器的方法的文章就介紹到這了,更多相關(guān)Memcached緩存服務(wù)器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

標(biāo)簽:湖北 煙臺 懷化 通遼 賀州 黃山 湘潭 山南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Memcached構(gòu)建緩存服務(wù)器的方法》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266