Linux下如何安装集中式缓存系统Memcached

发布时间:2022-02-17 09:51:32 作者:小新
来源:亿速云 阅读:152
# 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. 安全建议和性能优化提示

可根据实际需要调整各部分内容的深度或添加更多具体案例。

推荐阅读:
  1. 安装memcached扩展
  2. CentOS release 6.5下安装php-memcached

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux memcached

上一篇:Linux下如何安装数据库管理系统MariaDB

下一篇:RHEL7/CentOS7怎么重设系统密码

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》