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 //检查端口是否开放