RHEL / CentOS 6 Linux 安装 Memcached 高性能分布式内存对象缓存服务器
memcached 是一款高性能、分布式内存对象缓存服务器,本质上是通用的,但旨在通过减轻数据库负载来加速动态 Web 应用程序。您需要安装以下软件包:
教程详细信息 | |
---|---|
难度等级 | 中间的 |
Root 权限 | 是的 |
要求 | Linux 终端 |
类别 | 包管理器 |
操作系统兼容性 | CentOS • RHEL |
预计阅读时间 | 3 分钟 |
- memcached:高性能、分布式内存对象缓存服务器包。
- perl-Cache-Memcached:与 memcached 服务器协同工作的 Perl 客户端(库)。
- python-memcached:与 memcached 服务器协同工作的 Python 客户端(库)。
- php-pecl-memcache:与 Memcached 服务器配合使用的 PHP 扩展。
任务:在 CentOS/RHEL 上安装 memcached
打开终端或使用 ssh 客户端登录远程服务器。输入以下yum 命令进行安装:
或
示例输出:
# yum install memcached.x86_64 php-pecl-memcache.x86_64
# yum install memcached php-pecl-memcache
Loaded plugins: product-id, rhnplugin, subscription-manager Updating certificate-based repositories. Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package memcached.x86_64 0:1.4.4-3.el6 will be installed --> Processing Dependency: libevent-1.4.so.2()(64bit) for package: memcached-1.4.4-3.el6.x86_64 ---> Package php-pecl-memcache.x86_64 0:3.0.5-3.el6 will be installed --> Processing Dependency: /usr/bin/pecl for package: php-pecl-memcache-3.0.5-3.el6.x86_64 --> Processing Dependency: /usr/bin/pecl for package: php-pecl-memcache-3.0.5-3.el6.x86_64 --> Running transaction check ---> Package libevent.x86_64 0:1.4.13-1.el6 will be installed ---> Package php-pear.noarch 1:1.9.4-4.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: memcached x86_64 1.4.4-3.el6 rhel-x86_64-server-6 68 k php-pecl-memcache x86_64 3.0.5-3.el6 rhel-x86_64-server-6 60 k Installing for dependencies: libevent x86_64 1.4.13-1.el6 rhel-x86_64-server-6 66 k php-pear noarch 1:1.9.4-4.el6 rhel-x86_64-server-6 393 k Transaction Summary ================================================================================ Install 4 Package(s) Total download size: 587 k Installed size: 0 Is this ok [y/N]: y Downloading Packages: (1/4): libevent-1.4.13-1.el6.x86_64.rpm | 66 kB 00:00 (2/4): memcached-1.4.4-3.el6.x86_64.rpm | 68 kB 00:00 (3/4): php-pear-1.9.4-4.el6.noarch.rpm | 393 kB 00:00 (4/4): php-pecl-memcache-3.0.5-3.el6.x86_64.rpm | 60 kB 00:00 -------------------------------------------------------------------------------- Total 2.4 MB/s | 587 kB 00:00 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Warning: RPMDB altered outside of yum. Installing : 1:php-pear-1.9.4-4.el6.noarch 1/4 Installing : libevent-1.4.13-1.el6.x86_64 2/4 Installing : memcached-1.4.4-3.el6.x86_64 3/4 Installing : php-pecl-memcache-3.0.5-3.el6.x86_64 4/4 Installed products updated. Installed: memcached.x86_64 0:1.4.4-3.el6 php-pecl-memcache.x86_64 0:3.0.5-3.el6 Dependency Installed: libevent.x86_64 0:1.4.13-1.el6 php-pear.noarch 1:1.9.4-4.el6 Complete!
如何配置 Memcached 服务器?
编辑/etc/sysconfig/memcached文件,输入:
# vi /etc/sysconfig/memcached
编辑或者配置如下:
PORT="11211" USER="memcached" MAXCONN="1024" CACHESIZE="64" OPTIONS="
对于繁忙的服务器,您需要按如下方式增加值:
- MAXCONN:使用最大 1024 个同时连接;默认值为 1024。对于繁忙的服务器,请根据要求或设置增加此数字。
- CACHESIZE:使用最多 64 MB 内存用于对象存储;默认值为 64 兆字节。对于繁忙的服务器,您可以将其设置为 512MB 或 1GB (1024)。
- 选项:您可以在此处设置服务器 IP 地址(监听地址),以便基于 apache/php/nginx 的服务器可以连接到服务器。默认情况下,它设置为 INADDR_ANY。这是一个需要考虑的重要选项,因为没有其他方法可以保护安装。建议绑定到内部或防火墙网络接口。
这是我更新的示例配置文件:
PORT="11211" USER="memcached" MAXCONN="4096" CACHESIZE="512" OPTIONS="-l 192.168.1.15"
如何启动/停止/重新启动 Memcached 服务器?
键入以下命令:或者使用 service 命令或 systemctl 命令为最新版本的 RHEL/CentOS
运行 System V init 脚本:
或者
# /etc/init.d/memcached start
# /etc/init.d/memcached stop
# /etc/init.d/memcached restart
# /etc/init.d/memcached status
# /sbin/service memcached start
# /sbin/service memcached stop
# /sbin/service memcached restart
# /sbin/service memcached status
# systemctl start memcached
# systemctl stop memcached
# systemctl restart memcached
# systemctl status memcached
如何验证 Memcached 在 Linux 上正常运行?
键入以下命令来查看它是否正在运行:
示例输出:
# pgrep memcached
# netstat -tulpn | grep :11211
tcp 0 0 192.168.1.15:11211 0.0.0.0:* LISTEN 24964/memcached udp 0 0 192.168.1.15:11211 0.0.0.0:* 24964/memcached
使用 memcached-tool 获取有关服务器的一般统计信息:
# memcached-tool 192.168.1.15:11211 stats
示例输出:
#192.168.1.15:11211 Field Value accepting_conns 1 auth_cmds 0 auth_errors 0 bytes 5481902 bytes_read 8242409 bytes_written 26023492 cas_badval 0 cas_hits 0 cas_misses 0 cmd_flush 0 cmd_get 9042 cmd_set 4469 conn_yields 0 connection_structures 48 curr_connections 47 curr_items 3197 decr_hits 0 decr_misses 0 delete_hits 6 delete_misses 112 evictions 0 get_hits 7490 get_misses 1552 incr_hits 0 incr_misses 0 limit_maxbytes 536870912 listen_disabled_num 0 pid 24964 pointer_size 64 rusage_system 0.149977 rusage_user 0.043993 threads 4 time 1327395688 total_connections 171 total_items 3226 uptime 198 version 1.4.4
如何配置防火墙来保护我的 Memcached 服务器?
确保 iptables 仅允许访问您自己的服务器。编辑/etc/sysconfig/iptables并附加以下规则,或将其添加到您的 shell 脚本中,如下所示:
## add to your shell script ## ## assumption default INPUT policy is set to DROP ## ## only accept connection to tcp/udp port 11211 if ip is between 192.168.1.10 and 192.168.1.15 ## iptables -A INPUT -p tcp --destination-port 11211 -m state --state NEW -m iprange --src-range 192.168.1.10-192.168.1.15 -j ACCEPT iptables -A INPUT -p udp --destination-port 11211 -m state --state NEW -m iprange --src-range 192.168.1.10-192.168.1.15 -j ACCEPT
有关设置防火墙的更多信息,请参阅此处和此处的RHEL / CentOS 防火墙教程。
相关另外,请查看我们针对Alpine Linux Awall、CentOS 8、OpenSUSE、RHEL 8、Debian 12/11、Ubuntu Linux 版本16.04 LTS / 18.04 LTS / 20.04 LTS和22.04 LTS 的
所有完整防火墙教程。
如何使用 Memcached 缓存 MySQL 查询?
您需要使用 API 修改您的 php 代码。您可以在此处找到示例和代码样本。或者,如果您使用 worpdress 作为 CMS,您可以安装 memcached 扩展,例如WordPress 扩展/插件。
参考:
- memcached项目网站
- iptables 命令
- 使用 man 命令或 help 命令查看以下手册页。例如:
$ man 8 yum
$ man 1 memcached