亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Memcache緩存系統(tǒng)知識點梳理

 更新時間:2012年09月18日 15:50:45   作者:  
Memcached是一個免費開源的,高性能的,具有分布式對象的緩存系統(tǒng),它可以用來保存一些經(jīng)常存取的對象或數(shù)據(jù),保存的數(shù)據(jù)像一張巨大的HASH表,該表以Key-value對的方式存在內(nèi)存中
Memcached概念:
Memcached是一個免費開源的,高性能的,具有分布式對象的緩存系統(tǒng),它可以用來保存一些經(jīng)常存取的對象或數(shù)據(jù),保存的數(shù)據(jù)像一張巨大的HASH表,該表以Key-value對的方式存在內(nèi)存中。
官網(wǎng)下載地址: http://www.memcached.org/
運行環(huán)境: linux,BSD,windows都可跑
協(xié)議理論:http://code.sixapart.com/svn/memcached/trunk/server/doc/protocol.txt (英文)

操作流程:


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

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

4、當分配給memcached內(nèi)存空間用完之后,會使用LRU(Least Recently Used,最近最少使用)策略加上到期失效策略,失效數(shù)據(jù)首先被替換,然后再替換掉最近未使用的數(shù)據(jù)。

Memcached特征:

協(xié)議簡單
   它是基于文本行的協(xié)議,直接通過telnet在memcached服務(wù)器上可進行存取數(shù)據(jù)操作
基于libevent事件處理
    Libevent是一套利用C開發(fā)的程序庫,它將BSD系統(tǒng)的kqueue,Linux系統(tǒng)的epoll等事件處理功能封裝成一個接口,與傳統(tǒng)的select相比,提高了性能。
內(nèi)置的內(nèi)存管理方式
    所有數(shù)據(jù)都保存在內(nèi)存中,存取數(shù)據(jù)比硬盤快,當內(nèi)存滿后,通過LRU算法自動刪除不使用的緩存,但沒有考慮數(shù)據(jù)的容災(zāi)問題,重啟服務(wù),所有數(shù)據(jù)會丟失。
分布式
   各個memcached服務(wù)器之間互不通信,各自獨立存取數(shù)據(jù),不共享任何信息。服務(wù)器并不具有分布式功能,分布式部署取決于memcache客戶端。

Memcached安裝與啟動:
安裝memcached需要先安裝libevent

復(fù)制代碼 代碼如下:

Shell>tar zxvf libevent-1.4.14b-stable.tar.gz
Shell>cd libevent-1.4.14b-stable
Shell>./configure
Shell>make && make install

安裝memcached
復(fù)制代碼 代碼如下:

Shell>tar zxvf memcached-1.2.5.tar.tar
Shell>cd memcached-1.2.5
Shell>./configure –prefix=/usr/local/memcached
Shell>make && make install

啟動memcached
Shell>/usr/local/memcached/bin/memcached –p 11211 –d –u root –P /tmp/memcached.pid

復(fù)制代碼 代碼如下:

-P是表示使用TCP,默認端口為11211
-d表示后臺啟動一個守護進程(daemon)
-u表示指定root用戶啟動,默認不能用root用戶啟動
-P表示進程的pid存放地點,此處“p”為大寫“P”
-l,后面跟IP地址,手工指定監(jiān)聽IP地址,默認所有IP都在監(jiān)聽
-m后面跟分配內(nèi)存大小,以MB為單位,默認為64M
-c最大運行并發(fā)連接數(shù),默認為1024
-f 塊大小增長因子,默認是1.25
-M 內(nèi)存耗盡時返回錯誤,而不是刪除項,即不用LRU算法


在64位系統(tǒng)中,會報libevent-1.4.so.2文件無法找到,解決辦法是把32位目錄里的同名文件鏈接至64位目錄中,即像windows那樣建立快捷方式。
Shell > /usr/local/lib/libevent-1.4.so.2 /usr/lib64/libevent-1.4.so.2
啟動后如果發(fā)現(xiàn)沒有端口在監(jiān)聽,是因為命動命令時帶pid參數(shù)的“p”是大寫“P”,你可能寫成小寫了。

命令行直接操作命令

存,有六個命令項。
復(fù)制代碼 代碼如下:

Set:添加一個新條目到memcached或是用新的數(shù)據(jù)替換替換掉已存在的條目
Add:當KEY不存在的情況下,它向memcached存數(shù)據(jù),否則,返回NOT_STORED響應(yīng)
Replace:當KEY存在的情況下,它才會向memcached存數(shù)據(jù),否則返回NOT_STORED響應(yīng)
Cas:改變一個存在的KEY值 ,但它還帶了檢查的功能
Append:在這個值后面插入新值
Prepend:在這個值前面插入新值


取,有兩個命令項:

復(fù)制代碼 代碼如下:

Get:取單個值 ,從緩存中返回數(shù)據(jù)時,將在第一行得到KEY的名字,flag的值和返回的value長度,真正的數(shù)據(jù)在第二行,最后返回END,如KEY不存在,第一行就直接返回END
Get_multi:一次性取多個值


刪除,一個命令:
復(fù)制代碼 代碼如下:
Delete


實例操作:
先連接到memcache
復(fù)制代碼 代碼如下:
shell>telnet 127.0.0.1 11211



在入數(shù)據(jù)

復(fù)制代碼 代碼如下:
Set liuguohua 0 0 21
369369.blog.51cto.com


回車后系統(tǒng)自動保存,并返回正常值STORED
存入命令格式為
<command> <key> <flags> <exptime> <bytes> \r\n
注意在設(shè)定bytes字節(jié)后,存入的值的長度一定要與之匹配,否則無法保存成功,像liuguohua字段為21字節(jié),所以存入的369369.blog.51cto.com長度為21(總計為21個數(shù)字或字母)。


取數(shù)據(jù)
復(fù)制代碼 代碼如下:
Get liuguohua

回車后,第一行返回VALUE liuguohua 0 21
第二行,返回真正值369369.blog.51cto.com



Memcached的內(nèi)存算法:

Memcached利用slab allocation機制來分配和管理內(nèi)存,它按照預(yù)先規(guī)定的大小,將分配的內(nèi)存分割成特定長度的內(nèi)存塊,再把尺寸相同的內(nèi)存塊分成組,數(shù)據(jù)在存放時,根據(jù)鍵值 大小去匹配slab大小,找就近的slab存放,所以存在空間浪費現(xiàn)象。

傳統(tǒng)的內(nèi)存管理方式是,使用完通過malloc分配的內(nèi)存后通過free來回收內(nèi)存,這種方式容易產(chǎn)生內(nèi)存碎片并降低操作系統(tǒng)對內(nèi)存的管理效率。



Memcached的緩存策略:

Memcached的緩存策略是LRU(最近最少使用)加上到期失效策略。當你在memcached內(nèi)存儲數(shù)據(jù)項時,你有可能會指定它在緩存的失效時間,默認為永久。當memcached服務(wù)器用完分配的內(nèi)時,失效的數(shù)據(jù)被首先替換,然后也是最近未使用的數(shù)據(jù)。在LRU中,memcached使用的是一種Lazy Expiration策略,自己不會監(jiān)控存入的key/vlue對是否過期,而是在獲取key值時查看記錄的時間戳,檢查key/value對空間是否過期,這樣可減輕服務(wù)器的負載。

Memcached的分布式算法:
當向memcached集群存入/取出key/value時,memcached客戶端程序根據(jù)一定的算法計算存入哪臺服務(wù)器,然后再把key/value值存到此服務(wù)器中。也就是說,存取數(shù)據(jù)分二步走,第一步,選擇服務(wù)器,第二步存取數(shù)據(jù)。



分布式算法(Consistent Hashing):

選擇服務(wù)器算法有兩種,一種是根據(jù)余數(shù)來計算分布,另一種是根據(jù)散列算法來計算分布。
余數(shù)算法:
先求得鍵的整數(shù)散列值,再除以服務(wù)器臺數(shù),根據(jù)余數(shù)確定存取服務(wù)器,這種方法計算簡單,高效,但在memcached服務(wù)器增加或減少時,幾乎所有的緩存都會失效。
散列算法:
先算出memcached服務(wù)器的散列值,并將其分布到0到2的32次方的圓上,然后用同樣的方法算出存儲數(shù)據(jù)的鍵的散列值并映射至圓上,最后從數(shù)據(jù)映射到的位置開始順時針查找,將數(shù)據(jù)保存到查找到的第一個服務(wù)器上,如果超過2的32次方,依然找不到服務(wù)器,就將數(shù)據(jù)保存到第一臺memcached服務(wù)器上。如果添加了一臺memcached服務(wù)器,只在圓上增加服務(wù)器的逆時針方向的第一臺服務(wù)器上的鍵會受到影響。



Memcache的管理與性能監(jiān)控:

可以通過命令行直接管理與監(jiān)控也可通過nagios,cacti等web軟件進行監(jiān)控
命令行:
復(fù)制代碼 代碼如下:

Shell>telnet 127.0.0.1 1211 //如果在啟動時指定了IP及端口號,這里要作相應(yīng)改動
連接成功后命令
Stats:統(tǒng)計memcached的各種信息
Stats reset:重新統(tǒng)計數(shù)據(jù)
Stats slabs,顯示slabs信息,可以詳細看到數(shù)據(jù)的分段存儲情況
Stats items:顯示slab中的item數(shù)目
Stats cachedump 1 0:列出slabs第一段里存的KEY值
Set|get:保存或獲取數(shù)據(jù)
STAT evictions 0:表示要騰出新空間給新的item而移動的合法item數(shù)目

其它常用軟件使用:
復(fù)制代碼 代碼如下:

Shell>./Memcached-tool 127.0.0.1:11211
Shell>./Memcached-tool 127.0.0.1:11211 display

Web軟件:
復(fù)制代碼 代碼如下:

Memcache.php
Nagios插件
Cacti模塊


Memcached與redis比較:



本文出自 “系統(tǒng)網(wǎng)絡(luò)運維” 博客,請務(wù)必保留此出處http://369369.blog.51cto.com/319630/833234

相關(guān)文章

  • Hadoop中namenode和secondarynamenode工作機制講解

    Hadoop中namenode和secondarynamenode工作機制講解

    今天小編就為大家分享一篇關(guān)于Hadoop中namenode和secondarynamenode工作機制講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • 服務(wù)器常見問題匯總(常見故障及相應(yīng)的解決方法)

    服務(wù)器常見問題匯總(常見故障及相應(yīng)的解決方法)

    服務(wù)器一般是很少出現(xiàn)問題的,一旦出現(xiàn)問題,怎樣去積極的搶救呢?我們不能坐以待斃,原因一旦服務(wù)器故障,那么該服務(wù)器上的所有網(wǎng)站將都會無法打開。對于一個企業(yè)來說,網(wǎng)站就是他們的命脈,損失是巨大的
    2017-04-04
  • 阿里云快速搭建一個靜態(tài)網(wǎng)站的方法步驟

    阿里云快速搭建一個靜態(tài)網(wǎng)站的方法步驟

    這篇文章主要介紹了阿里云快速搭建一個靜態(tài)網(wǎng)站的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02
  • 詳解百度https認證提示"請將您的http站點301重定向到https站點"的解決辦法

    詳解百度https認證提示"請將您的http站點301重定向到https站點"的解決辦法

    對于301重定向這一概念玩SEO的同志們都不陌生了,近些年來https協(xié)議越來越火,百度大大已經(jīng)明確了對https的扶持政策,這篇文章主要介紹了詳解百度https認證提示"請將您的http站點301重定向到https站點"的解決辦法,感興趣的小伙伴們可以參考一下
    2018-12-12
  • 基于BaseHTTPRequestHandler的HTTP服務(wù)器使用及實現(xiàn)方法

    基于BaseHTTPRequestHandler的HTTP服務(wù)器使用及實現(xiàn)方法

    BaseHTTPRequestHandler是Python中的一個基類,屬于http.server模塊,用于處理HTTP請求的基本功能,下面詳細介紹BaseHTTPRequestHandler的主要特點和使用方法,感興趣的朋友一起看看吧
    2023-10-10
  • Apache,IIS下Discuz x1.5偽靜態(tài)設(shè)置方法

    Apache,IIS下Discuz x1.5偽靜態(tài)設(shè)置方法

    有時候我們在假設(shè)論壇的時候,為了優(yōu)化搜索引擎收錄效果,需要設(shè)為偽靜態(tài),除了后臺的設(shè)置,也需要服務(wù)器支持,下面的具體的實現(xiàn)方法,
    2011-05-05
  • GPU服務(wù)器的多用戶配置方法

    GPU服務(wù)器的多用戶配置方法

    這篇文章主要介紹了GPU服務(wù)器的多用戶配置,主要包括安裝ssh,安裝 ftp,創(chuàng)建用戶組和用戶及安裝配置 Anaconda的相關(guān)知識,需要的朋友可以參考下
    2022-07-07
  • 寶塔面板定時訪問URL地址的實現(xiàn)步驟

    寶塔面板定時訪問URL地址的實現(xiàn)步驟

    寶塔面板挺好用的,特別是用來定時備份網(wǎng)站及數(shù)據(jù)庫、同步時間、釋放內(nèi)存等,本文主要介紹了寶塔面板定時訪問URL地址的實現(xiàn)步驟,具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • 自動運行 screen 任務(wù)詳解

    自動運行 screen 任務(wù)詳解

    這篇文章主要為大家介紹了自動運行 screen 任務(wù)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • 解決xshell連接服務(wù)器報找不到匹配的host?key算法問題

    解決xshell連接服務(wù)器報找不到匹配的host?key算法問題

    這篇文章主要介紹了xshell連接服務(wù)器報找不到匹配的host?key算法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08

最新評論