memcached介绍

memcached是高性能的分布式缓存服务器,用来集中缓存数据库查询的结果,减少数据库访问次数,以提高应用程序的响应速度。

特征

协议简单,基于libvent的事件处理,并且是内置内存存储的方式,memcached是不相互通信的分布式。

memcached内存管理机制

先按照预先规定的大小将分配的内存分割成特定长度的内存块(chunk),再把大小相同的内存块分成组(chunk集合)。这些内存块不会释放,可以重复利用。

memcached采用最近最少使用原则删除记录机制:当memcached的内存空间不足时,从最近未被使用的记录中搜索,并将其空间分配给新的记录

安装部署

由于使用的阿里云esc,所以yum源已经有memcached,之间安装即可,如没有则手动从网上下载即可。

[root@iZ28m9qitsuZ ~]# yum install memcached.x86_64

[root@iZ28m9qitsuZ sysconfig]# vim /etc/sysconfig/memcached

PORT="11211"       //默认端口号

USER="memcached"      //使用memcached身份运行

MAXCONN="1024"       //最大使用本机的1G内存

CACHESIZE="64"       //缓存的大小

OPTIONS=""

[root@iZ28m9qitsuZ ]# systemctl startmemcached   //开启服务

[root@iZ28m9qitsuZ ]# systemctl enablememcached  //设置开机自启

[root@iZ28m9qitsuZ ]# systemctl statusmemcached   //查看服务的状态

memcached 常用选项

-p 指定memcached监听的端口号,默认是11211

-l  指定memcached服务器的ip地址

-u  指定memcached运行时使用的用户身份

-m 指定使用本机的多少物理内存

-c 指定memcached服务器的最大连接数

-vvv 显示详细信息(v

-n chunk size的最小空间,单位为字节

-f chunk size大小增长的倍数,默认是1.25

-d 表示在后台启动

测试

[root@iZ28m9qitsuZ ]# telnetlocalhost 11211

Trying 127.0.0.1...

Connected to localhost.

Escape character is '^]'.

stats  //查看状态信息

扩展

安装PHP-memcache扩展,防火墙放开11211端口

[root@iZ28m9qitsuZ ]#yum -y install php-pecl-memcache
[root@iZ28m9qitsuZ ]#yum -y install php56w-pecl-memcache   //如果是PHP56版本的应该运行

[root@iZ28m9qitsuZ ]#firewall-cmd --permanent --zone=public --add-port=11211/tcp   //防火墙放开11211

[root@iZ28m9qitsuZ ]#echo stats | nc memcache_host_name_or_ip 11211  //检查端口是否开放