CentOS 安装 Memcached 详细指南
前言
本文旨在详细介绍如何在 CentOS 系统上安装和配置 Memcached,包括其依赖库 libevent 的安装、Memcached 的配置与启动、以及如何通过 Telnet 进行基本的增删改查操作,内容全面且逻辑清晰,适合初学者和有一定基础的用户参考。
前提条件
在开始之前,请确保你以拥有 sudo 权限的用户身份登录系统,如果没有,请联系系统管理员获取相应权限。
二、安装 Memcached 及其依赖库 libevent
1. 下载并安装 libevent
下载安装包:需要从官方网站下载 libevent 的稳定版本,这里我们下载的是libevent2.1.12stable.tar.gz
(实际下载时请根据官网最新版本进行选择)。
上传文件:使用 Xshell 中的 Xftp 功能,将下载好的安装包上传至虚拟机的/home/root/
文件夹中。
解压安装包:执行以下命令进入安装包所在目录,并解压:
cd /home/root/ tar zxvf libevent2.1.12stable.tar.gz C /home/root/apps
进入目录:解压后,进入libevent2.1.12stable
目录。
安装:执行以下命令进行安装:
./configure prefix=/usr/local/libevent make sudo make install
如果遇到错误提示需要安装 gcc 等依赖,请执行:
sudo yum y install gcc gccc++ autoconf pcre pcredevel make automake
对于 openssl 依赖问题,执行:
sudo yum install openssldevel
再次运行./configure prefix=/usr/local/libevent
,然后继续make
和sudo make install
。
测试 libevent 是否安装成功:可以通过以下命令检查:
ls al /usr/lib | grep libevent
或
ls al /usr/local/lib | grep libevent
2. 下载并安装 Memcached
下载安装包:同样地,从 [Memcached 官方网站](https://memcached.org/downloads) 下载最新的稳定版本(如memcached1.6.12.tar.gz
)。
上传并解压:使用 Xftp 上传至/home/root/
文件夹,并解压:
tar zxvf memcached1.6.12.tar.gz C /home/root/apps/
配置、编译和安装:进入memcached1.6.12
目录,执行以下命令:
./configure prefix=/usr/local/memcached withlibevent=/usr/local/libevent/ make sudo make install
注意:如果出现错误提示未找到 libevent 库,请确保withlibevent
参数正确指向 libevent 的安装路径。
设置环境变量:为了方便使用 Memcached,可以将其添加到系统的环境变量中:
vi /etc/profile
在文件末尾添加:
export MEMCACHED_ROOT=/usr/local/memcached export PATH=$MEMCACHED_ROOT/bin:$PATH
然后执行source /etc/profile
使更改生效。
运行 Memcached
启动 Memcached:执行以下命令启动 Memcached 服务,监听端口为 11211,分配内存为 64M,以 root 用户运行,并以守护进程方式运行:
memcached p 11211 m 64M u root d
>注意事项:如果遇到“can’t run as root without the u switch”错误,请确保使用了u root
参数,如果遇到共享库加载错误,请确认 libevent 库已正确安装,并创建必要的符号链接(对于 CentOS):
ln s /usr/local/lib/libevent2.1.so.7.0.1 /usr/lib64/libevent2.1.so.7.0.1
对于 Ubuntu,则创建相应的符号链接到/usr/lib/
目录。
测试 Memcached 是否运行:使用 Telnet 连接本地主机的 11211 端口:
telnet localhost 11211
如果看到 Memcached 的版本信息和欢迎消息,说明服务已成功启动。
配置 Memcached(可选)
1. 修改监听地址(仅限本地访问)
为了增强安全性,可以配置 Memcached 仅监听本地接口:
编辑/etc/sysconfig/memcached
文件,找到OPTIONS
变量,添加l 127.0.0.1
参数:
OPTIONS="l 127.0.0.1"
保存后重启 Memcached 服务:
sudo systemctl restart memcached
2. 防火墙设置(如果需要远程访问)
如果需要允许远程访问 Memcached,可以使用 FirewallD 配置防火墙规则,允许来自特定 IP 地址的访问:
sudo firewallcmd permanent addrichrule='rule family="ipv4" source address="192.168.100.30/32" port protocol="tcp" port="11211" accept' sudo firewallcmd reload
上述规则中的 IP 地址应根据实际需求进行调整。
使用 Telnet 进行基本操作
1. Telnet 基本命令
存储键值对:使用set
命令存储键值对,格式为set <key> <flags> <exptime> <bytes> [noreply]> <value>...>
。
set mykey 0 900 5 hello world!
这将在 900 秒(15分钟)内存储一个字符串hello world!
,键名为mykey
。
获取键的值:使用get
命令获取键的值:
get mykey
如果键存在,将返回其值;否则返回END
。
删除键:使用delete
命令删除键:
delete mykey
2. Telnet 简单例子
假设我们已经通过 Telnet 连接到 Memcached 服务器,可以进行以下操作:
存储键值对 set mykey 0 900 5 hello world! STORED 获取键的值 get mykey VALUE mykey 0 5 hello world! END 删除键 delete mykey DELETED
这些操作展示了 Memcached 的基本增删改查功能。
Q1: Memcached 无法启动,提示“can’t run as root without the u switch”?
A1: 这个错误是因为 Memcached 禁止以 root 用户身份运行而没有指定用户,解决方法是在启动命令中添加u root
参数,指定以 root 用户运行:
memcached p 11211 m 64M u root d
或者,更好的做法是创建一个专用的用户来运行 Memcached,
useradd r memcached
然后以该用户身份运行 Memcached:
memcached p 11211 m 64M u memcached d
Q2: Memcached 启动后无法连接,提示“error while loading shared libraries”?
A2: 这个错误通常是由于系统找不到所需的共享库,解决方法是为缺少的共享库创建符号链接,对于 CentOS,执行:
ln s /usr/local/lib/libevent2.1.so.7.0.1 /usr/lib64/libevent2.1.so.7.0.1
对于 Ubuntu,则执行:
ln s /usr/local/lib/libevent2.1.so.7.0.1 /usr/lib/libevent2.1.so.7.0.1