阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

LNMP 开启 Memcached 内存缓存加速网站

299次阅读
没有评论

共计 3021 个字符,预计需要花费 8 分钟才能阅读完成。

Memcached 是一个高性能的分布式内存对象缓存系统。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。

最近站长也给自己的阿里云服务器安装了 Memcached,效果似乎还不错哦。

测试环境:阿里云 CentOS 6.5 64 位,军哥的 LNMP 一键安装包配置的环境 1.2。

安装 Memcached

lnmp1.2:进入 lnmp 解压后的目录,执行:./addons.sh install memcached(这是军哥 lnmp 内置的安装脚本,其他自己配置的环境,自己 google 安装方法吧)

可以根据自己的需求选择 php-memcache 或 php-memcached 扩展,目前 discuz x 使用的是前者,功能上 php-memcached 更强大一些。 如果要使用下文的 WordPress 插件,请选择 php-memcache(也就是 1),否则会有问题
输入对应的序号,回车,再次确认回车开始安装。

安装完以后,就可以正常启用了。

WordPress 开启 Memcached 缓存

下载 WordPress Memcached 插件 ,解压后,将 object-cache.php 上传到 wp-content 目录(不是 wp-content/plugins/),这样 WordPress 会自动检查在 wp-content 目录下是否有 object-cache.php 文件,如果有,直接调用它作为 WordPress 对象缓存机制。

注意:如果你的服务器安装了多个 WordPress,请确保每个 WordPress 站点使用了不同的数据库前缀,如果前缀一样,比如都是 wp_,就很可能造成冲突,因为每个网站的数据都通过内存进行缓存,前缀一样就会打架啦!

为你的 WordPress 站点开启了 memcached 缓存以后,就没必要安装 DB Cache Reloaded Fix 这类数据库缓存插件了。

查看 Memcached 缓存情况

我们需要使用 telnet 命令查看,首先检测一下是否已安装 telnet 包

1
rpm -qa |grep telnet

如果安装了,会返回相关版本

telnet-0.17-41.el5
telnet-server-0.17-41.el5

如果没有安装,运行下面的命令,注意在 root 下安装

12
3
yum install xinetd
yum install telnet
yum install telnet-server

特别说明:telnet 服务要依靠 xinetd 服务启动,所以要先安装 xinetd 服务。所以我们要先安装 xinetd,再安装 telnet-server。

然后链接到 telnet 服务

1
telnet 127.0.0.1 11211

如果链接成功,会返回:

Trying 127.0.0.1…
Connected to 127.0.0.1.
Escape character is‘^]’.

然后输入

1
stats

回车,就可以看到 Memcached 的缓存情况

STAT pid 20439  —— Memcached 进程的 ID
STAT uptime 179982 —— 进程运行时间
STAT time 1382361665 ——当前时间
STAT version 1.4.15 —— Memcached 版本
STAT libevent 1.4.13-stable
STAT pointer_size 32
STAT rusage_user 21.916668
STAT rusage_system 40.576831
STAT curr_connections 11
STAT total_connections 329
STAT connection_structures 23
STAT reserved_fds 20
STAT cmd_get 2363348 —— 总共获取数据的次数(等于 get_hits + get_misses)
STAT cmd_set 279971 —— 总共设置数据的次数

STAT cmd_flush 0
STAT cmd_touch 0
STAT get_hits 2286284 —— 命中了多少次数据,也就是从 Memcached 缓存中成功获取数据的次数
STAT get_misses 77064 —— 没有命中的次数

STAT delete_misses 30803
STAT delete_hits 48876
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 574591015
STAT bytes_written 4353057466
STAT limit_maxbytes 67108864 —— 总的存储大小,默认为 64M
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 262144
STAT hash_is_expanding 0
STAT bytes 4717345 —— 当前所用存储大小
STAT curr_items 5654
STAT total_items 58461
STAT expired_unfetched 17
STAT evicted_unfetched 0
STAT evictions 0
STAT reclaimed 49
END

以上数据的命中率:2286284/2363348 = 96.7% 说明当前命中率是比较高的。

如果你要清空现有数据,可以使用下面的命令:

1
stats reset

要退出 telnet,输入组合键 Ctrl+] 出现

telnet>

输入 quit 即可退出。

1. 关闭 Memcached

直接使用 kill 进程 ID 即可,比如上面信息显示的进程 ID 为 20439,那就使用 kill 20439

2. 重新启动 Memcached,并且修改内存等参数,样例如下(修改最大内存为 1024M,最大连接数为 4000):

1
memcached -d -m 1024 -u root -l 127.0.0.1 -p 11211 -c 4000 -P /tmp/memcached.pid 11211

更详细的有些参数介绍如下:

-p 监听的端口
-l 连接的 IP 地址, 默认是本机
-d start 启动 memcached 服务
-d restart 重起 memcached 服务
-d stop|shutdown 关闭正在运行的 memcached 服务
-d install 安装 memcached 服务
-d uninstall 卸载 memcached 服务
-u 以的身份运行 (仅在以 root 运行的时候有效)
-m 最大内存使用,单位 MB。默认 64MB
-M 内存耗尽时返回错误,而不是删除项
-c 最大同时连接数,默认是 1024
-f 块大小增长因子,默认是 1.25
-n 最小分配空间,key+value+flags 默认是 48
-h 显示帮助

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计3021字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中