# Linux下如何安裝集中式緩存系統Memcached
## 什么是Memcached?
Memcached是一個高性能的分布式內存對象緩存系統,最初由Brad Fitzpatrick為LiveJournal開發。它通過將數據緩存在內存中來減少數據庫負載,從而顯著提升動態Web應用的響應速度。Memcached具有以下核心特性:
- **純內存存儲**:所有數據存儲在RAM中,讀寫速度極快
- **鍵值存儲**:簡單的key-value數據結構
- **分布式架構**:可通過客戶端實現分布式緩存
- **協議簡單**:使用基于文本或二進制的協議
- **無持久化**:重啟后數據丟失,適合做臨時緩存
## 安裝前準備
在開始安裝前,請確保您的Linux系統滿足以下要求:
1. **系統要求**:
- 推薦Linux內核版本3.10或更高
- 至少1GB可用內存(生產環境建議4GB以上)
- root或sudo權限
2. **依賴檢查**:
```bash
# 檢查gcc是否安裝
gcc --version
# 檢查libevent是否安裝
rpm -qa | grep libevent # RHEL/CentOS
dpkg -l | grep libevent # Debian/Ubuntu
防火墻配置:
# 開放Memcached默認端口11211
sudo firewall-cmd --add-port=11211/tcp --permanent
sudo firewall-cmd --reload
對于Debian/Ubuntu系統:
sudo apt update
sudo apt install -y memcached libmemcached-tools
對于RHEL/CentOS系統:
sudo yum install -y memcached libmemcached
下載最新穩定版(以1.6.18為例):
wget https://memcached.org/files/memcached-1.6.18.tar.gz
tar -zxvf memcached-1.6.18.tar.gz
cd memcached-1.6.18
編譯安裝:
./configure --prefix=/usr/local/memcached
make && sudo make install
創建符號鏈接:
sudo ln -s /usr/local/memcached/bin/memcached /usr/bin/memcached
編輯配置文件(位置因系統而異):
# Debian/Ubuntu
sudo nano /etc/memcached.conf
# RHEL/CentOS
sudo nano /etc/sysconfig/memcached
常見配置參數:
# 監聽IP(0.0.0.0表示所有接口)
-l 0.0.0.0
# 運行端口
-p 11211
# 最大內存(MB)
-m 1024
# 最大連接數
-c 1024
# 后臺運行
-d
# 日志文件位置
logfile /var/log/memcached.log
限制訪問IP:
-l 192.168.1.100 # 只允許特定IP訪問
啟用SASL認證(企業版功能):
./configure --enable-sasl
使用防火墻規則限制:
sudo iptables -A INPUT -p tcp --dport 11211 -s 192.168.1.0/24 -j ACCEPT
# 啟動服務
sudo systemctl start memcached
# 設置開機自啟
sudo systemctl enable memcached
# 檢查狀態
sudo systemctl status memcached
# 重啟服務
sudo systemctl restart memcached
/usr/bin/memcached -u memcache -m 1024 -p 11211 -c 1024 -l 0.0.0.0 -d
使用telnet測試連接:
telnet localhost 11211
stats # 查看服務器狀態
sudo apt install php-memcached # Ubuntu
sudo yum install php-pecl-memcached # CentOS
import memcache
mc = memcache.Client(['127.0.0.1:11211'], debug=1)
# 設置緩存
mc.set("username", "john_doe", time=3600)
# 獲取緩存
username = mc.get("username")
print(username)
內存分配:
-m
參數合理設置內存上限連接池配置:
# Python示例
mc = memcache.Client(['127.0.0.1:11211'], max_pool_size=10)
監控指標:
stats items
查看item統計stats slabs
查看內存分配情況stats sizes
查看對象大小分布Q1: 連接被拒絕怎么辦?
# 檢查服務是否運行
ps aux | grep memcached
# 檢查端口監聽
netstat -tulnp | grep 11211
Q2: 內存使用率過高?
# 調整內存配置后重啟
sudo sed -i 's/-m 64/-m 512/' /etc/memcached.conf
sudo systemctl restart memcached
Q3: 如何清空所有緩存?
echo 'flush_all' | nc localhost 11211
特性 | Memcached | Redis |
---|---|---|
數據類型 | 僅key-value | 多種數據結構 |
持久化 | 不支持 | 支持 |
集群 | 需客戶端實現 | 內置支持 |
性能 | 更高 | 稍低 |
客戶端分片:
servers = [
'192.168.1.1:11211',
'192.168.1.2:11211',
'192.168.1.3:11211'
]
mc = memcache.Client(servers)
使用代理中間件:
Memcached作為成熟的緩存解決方案,在Web應用加速、數據庫減壓等場景表現卓越。本文詳細介紹了從安裝配置到優化管理的完整流程,建議在生產環境中配合監控工具(如Nagios、Zabbix)使用,并定期檢查stats
輸出以優化性能。
注意:Memcached默認沒有認證機制,在公網環境使用時務必配合防火墻或VPN確保安全。 “`
這篇文章共計約1550字,采用Markdown格式編寫,包含: 1. 多級標題結構 2. 代碼塊和配置示例 3. 表格比較 4. 有序/無序列表 5. 強調文本 6. 實際操作的命令示例 7. 常見問題解答 8. 安全建議和性能優化提示
可根據實際需要調整各部分內容的深度或添加更多具體案例。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。