您的位置 首页 php

php优化之memcached

Memcached是Danga Interactive公司开发的分布式内存对象缓存系统,目前以成为Web服务器提高可用性的一个重要因素。

很多Web应用程序查询存放在RDBMS数据库的数据,并返回给客户端(浏览器)。但是当我们的RDBMS数据库的数据量过大或者访问集中时,经常会导致RDBMS负荷过高而影响整个服务的响应时间。

Memcached是高性能分布式内存对象缓存系统,通常会把查询数据库的结果暂时缓存到内存,这么做的好处是同样的查询无需再次访问数据库直接从内存获取结果,不断降低了数据库的访问次数并且提高整个服务的响应时间。

确认环境

安装Memcached

yum安装Memcached时,会安装memcached和libevent。

# yum install memcached
 

使用php命令查看,php是否可使用Memcached。

# php -i | grep memcache

/etc/php.d/memcached.ini,
memcache
memcache support => enabled
memcache.allow_failover => 1 => 1
memcache.chunk_size => 8192 => 8192
memcache.default_port => 11211 => 11211
memcache.default_timeout_ms => 1000 => 1000
memcache.hash_function => crc32 => crc32
memcache.hash_strategy => standard => standard
memcache.max_failover_attempts => 20 => 20
Registered save handlers => files user sqlite memcache
 

启动Memcached

# systemctl start memcached
 

Memcached配置文件

Memcached的默认配置文件是,/etc/sysconfig/memcached。

# cat /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""
 
选项名 默认值 内容
PORT 11211 Memcached端口
USER memcached 执行Memcached的用户
MAXCONN 1024 最大同时连接数
CACHESIZE 32MB 指定Memcached使用的内存容量(单位MB) ※32位的系统,最大可指定到3GB
OPTIONS 可通过指定选项输出日志等,例如”-d -vv 1>> /var/log/memcached.log 2>> /var/log/memcached.log”

查看Memcached运行情况

# telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
stats 
STAT pid 86550
STAT uptime 8758
STAT time 1437094558
STAT version 1.4.18
STAT libevent 1.4.13-stable
STAT pointer_size 64
STAT rusage_user 5.710131
STAT rusage_system 14.127852
STAT curr_connections 210
STAT total_connections 7287
STAT connection_structures 224
STAT reserved_fds 20
STAT cmd_get 254594
STAT cmd_set 47166
STAT cmd_flush 0
STAT cmd_touch 0
STAT get_hits 250765
STAT get_misses 3829
STAT delete_misses 0
STAT delete_hits 0
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 1608079660
STAT bytes_written 931337346
STAT limit_maxbytes 67108864
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT malloc_fails 0
STAT bytes 12637015
STAT curr_items 14063
STAT total_items 47166
STAT expired_unfetched 8553
STAT evicted_unfetched 0
STAT evictions 0
STAT reclaimed 8738
STAT crawler_reclaimed 0
END
quit  
Connection closed by foreign host.
 

安全问题

通过telnet运行Memcached服务器的11211端口可以直接查看Memcached运行情况,更危险的是可以Dump所有Memcached缓存的数据。因此我们需要使用iptables等防火墙机制,进行一个访问限制。

文章来源:智云一二三科技

文章标题:php优化之memcached

文章地址:https://www.zhihuclub.com/151672.shtml

关于作者: 智云科技

热门文章

网站地图