1. 程式人生 > >NoSQL系列(1)——memcached源碼安裝使用

NoSQL系列(1)——memcached源碼安裝使用

NoSQL memcached 數據庫

0. 引言

NoSQL(NoSQL = Not Only SQL ),意即“不僅僅是SQL”,泛指非關系型數據庫,因為NoSQL不僅僅是指一種數據庫。就像關系型數據庫中有MySQL和Oracle等類型,NoSQL也有memcached、MongoDB和redis等。

NoSQL數據庫存儲原理非常簡單(典型的數據類型為k-v),不存在繁雜的關系鏈,比如mysql查詢的時候,需要找到對應的庫、表(通常是多個表)以及字段。NoSQL數據可以存儲在內存裏,查詢速度非常快,因此NoSQL數據庫隨著近年互聯網海量數據需求的發展,也迅速占據了市場。雖然,NoSQL在性能表現上優於關系型數據庫,但是它並不能完全替代關系型數據庫。NoSQL支持分布式存儲,但是它的分布式是靠客戶端算法實現,通過在內存裏維護一個統一的巨大的hash表,它能夠用來存儲各種格式的數據,包括圖像、視頻、文件以及數據庫檢索的結果等。簡單的說就是將數據調用到內存中,然後從內存中讀取,從而大大提高讀取速度。在動態系統中減少數據庫負載,提升性能。

memcache模塊是一個高效的守護進程,提供用於內存緩存的過程式程序和面向對象的方便的接口,特別是對於設計動態web程序時減少對數據庫的訪問。它的適用場合,是那些對數據訪問非常頻繁的場景。

現在打算了解一下NoSQL 技術,計劃會寫三篇文章,主要作為入門了解之用。

1. 如何安裝 memcached

作為memcached數據庫的第一篇,我們就先從環境安裝開始說起吧。安裝方法比較簡單,權當一個記錄了解吧。

系統環境: CentOS7

memcached 運行需要有 libevent 庫的支持,因為memcached需要支持非阻塞的IO訪問。

1.1 源碼安裝 libevent

 cd /usr/local/src/
 wget  wget https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz

tar zxvf  libevent-2.1.8-stable.tar.gz
cd libevent-2.1.8-stable
./configure --prefix=/usr/local/libevent/
make && make install

1.2 源碼安裝 memcached

wget https://www.memcached.org/files/memcached-1.5.7.tar.gz
tar -zxvf memcached-1.5.7.tar.gz 
./configure --with-libevent=/usr/local/libevent --prefix=/usr/local/memcached
make && make install

netstat -lntp

2. 啟動 memcached

/usr/local/memcached/bin/memcached -d -m 100 -u root -p 11211  -c 256 -P ./memcached.pid

參數說明:

-d  選項是啟動一個守護進程。
-m  是分配給Memcache使用的內存數量,單位是MB。
-u  是運行Memcache的用戶。
-l  是監聽的服務器IP地址。
-p  是設置Memcache監聽的端口。
-c  選項是最大運行的並發連接數,默認是1024。
-P  是設置保存Memcache的pid文件,保存在 /tmp/memcached.pid。

也可以啟動多個守護進程,不過端口不能重復。

3. 驗證監聽端口

[root@cenvm72 memcached-1.5.7]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN          9593/nginx: master  
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN          1073/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*              LISTEN         2173/master         
tcp        0      0 0.0.0.0:12000            0.0.0.0:*            LISTEN         20089/memcached     
tcp6       0      0 :::80                           :::*                    LISTEN         9593/nginx: master  
tcp6       0      0 :::22                           :::*                    LISTEN         1073/sshd           
tcp6       0      0 ::1:25                        :::*                    LISTEN          2173/master         
tcp6       0      0 :::12000                    :::*                    LISTEN          20089/memcached 

4. 總結

這篇就簡單介紹一下 memcached的功能和安裝步驟吧。下一篇分析一下它的內存使用方式。

NoSQL系列(1)——memcached源碼安裝使用