溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux下如何安裝集中式緩存系統Memcached

發布時間:2022-02-17 09:51:32 來源:億速云 閱讀:157 作者:小新 欄目:開發技術
# 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
  1. 防火墻配置

    # 開放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. 下載最新穩定版(以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
    
  2. 編譯安裝:

    ./configure --prefix=/usr/local/memcached
    make && sudo make install
    
  3. 創建符號鏈接:

    sudo ln -s /usr/local/memcached/bin/memcached /usr/bin/memcached
    

配置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

安全配置建議

  1. 限制訪問IP:

    -l 192.168.1.100  # 只允許特定IP訪問
    
  2. 啟用SASL認證(企業版功能):

    ./configure --enable-sasl
    
  3. 使用防火墻規則限制:

    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  # 查看服務器狀態

客戶端使用示例

PHP客戶端安裝

sudo apt install php-memcached  # Ubuntu
sudo yum install php-pecl-memcached  # CentOS

Python示例代碼

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)

性能優化建議

  1. 內存分配

    • 不要超過可用物理內存的80%
    • 使用-m參數合理設置內存上限
  2. 連接池配置

    # Python示例
    mc = memcache.Client(['127.0.0.1:11211'], max_pool_size=10)
    
  3. 監控指標

    • 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

擴展知識

Redis的比較

特性 Memcached Redis
數據類型 僅key-value 多種數據結構
持久化 不支持 支持
集群 需客戶端實現 內置支持
性能 更高 稍低

集群部署方案

  1. 客戶端分片

    servers = [
       '192.168.1.1:11211',
       '192.168.1.2:11211',
       '192.168.1.3:11211'
    ]
    mc = memcache.Client(servers)
    
  2. 使用代理中間件

    • Twemproxy (nutcracker)
    • Mcrouter (Facebook開源)

總結

Memcached作為成熟的緩存解決方案,在Web應用加速、數據庫減壓等場景表現卓越。本文詳細介紹了從安裝配置到優化管理的完整流程,建議在生產環境中配合監控工具(如Nagios、Zabbix)使用,并定期檢查stats輸出以優化性能。

注意:Memcached默認沒有認證機制,在公網環境使用時務必配合防火墻或VPN確保安全。 “`

這篇文章共計約1550字,采用Markdown格式編寫,包含: 1. 多級標題結構 2. 代碼塊和配置示例 3. 表格比較 4. 有序/無序列表 5. 強調文本 6. 實際操作的命令示例 7. 常見問題解答 8. 安全建議和性能優化提示

可根據實際需要調整各部分內容的深度或添加更多具體案例。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女