RHEL/CentOS 6 Linux安装Memcached高性能分布式内存对象缓存服务器
时间:2020-01-09 10:40:20 来源:igfitidea点击:
如何在IBM硬件上运行的Red Hat Enterprise Linux或CentOS Linux version6.x服务器下安装memcached服务器,以缓存基于php/perl/python的应用程序的查询?
memcached是一种高性能的分布式内存对象缓存服务器,本质上是通用的,但旨在通过减轻数据库负载来加速动态Web应用程序。
您需要安装以下软件包:
- memcached:高性能,分布式内存对象缓存服务器软件包。
- perl-Cache-Memcached:与memcached服务器一起使用的Perl客户端(库)。
- python-memcached:Python客户端(库),用于memcached服务器。
- php-pecl-memcache:与Memcached服务器一起使用的PHP扩展。
Memcached已被YouTube,Reddit,Facebook,Twitter等许多高流量站点所使用。
GoogleApp Engine,AppScale和Amazon Web Services还通过API提供了Memcached服务。
流行的开源项目和CMS(如Drupal,Joomla,WordPress等)也支持Memcached。
警告!这些示例仅适用于RHEL/CentOS Linux 6.x或更高版本。
对于RHEL 5.x和更早版本,请使用memcached源代码安装方法。
在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 MB。对于繁忙的服务器,您可以将其设置为512MB或1GB(1024)。OPTIONS
:您可以在此处设置服务器IP地址(在地址上监听),以便基于apache/php/nginx的服务器可以连接到服务器。默认情况下,它设置为INADDR_ANY。这是要考虑的重要选项,因为没有其他方法可以确保安装安全。建议绑定到内部或防火墙网络接口。
这是我更新的示例配置文件:
PORT="11211" USER="memcached" MAXCONN="4096" CACHESIZE="512" OPTIONS="-l 192.168.1.15"
保存并关闭文件。
如何启动/停止/重启Memcached服务器?
执行以下命令:
# /etc/init.d/memcached start # /etc/init.d/memcached stop # /etc/init.d/memcached restart # /etc/init.d/memcached status
或使用service命令运行System V初始化脚本
# /sbin/service memcached start # /sbin/service memcached stop # /sbin/service memcached restart # /sbin/service memcached status
如何验证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