memcached 简介
- 特点
1.内置内存存储方式-----------为了提高性能,memcached中保存的数据都存储在memcache内置的内存存储空间中。由于数据仅存在于内存中,重启操作系统会导致全部数据消失
2.简单key/value存储---------------服务器不关心数据本身的意义及结构,只要是可序列化数据即可。存储项由“键、过期时间、可选的标志及数据”四个部分组成;
3.不互相通信的分布式 ------------- memcached尽管是“分布式”缓存服务器,但服务器端并没有分布式功能。 各个memcached不会互相通信以共享信息。那么,怎样进行分布式呢? 这完全取决于客户端的实现。
- 服务框架
- 原理
1、检查客户端的请求数据是否在memcached中,如有,直接把请求数据返回,不再对数据库进行任何操作,路径操作为①②③⑦。
2、如果请求的数据不在memcached中,就去查数据库,把从数据库中获取的数据返回给客户端,同时把数据缓存一份到memcached中(memcached客户端不负责,需要程序明确实现),路径操作为①②④⑤⑦⑥。
3、保持缓存的“新鲜性”,每当数据发生变化的时候(比如,数据有被修改,或被删除的情况下),要同步的更新缓存信息,确保用户不会在缓存取到旧的数据。
memcached的部署
memca能存放多少数据,取决于服务器本身的内存有多大。
- 安装
yum -y install memcached
systemctl start memcached
- 修改配置文件
vim /etc/sysconfig/memcached
PORT="11211" ---监听的端口,默认11211.可以修改
USER="memcached" -----用户
MAXCONN="1024" -----默认并发,可以修改
CACHESIZE="64" ------给的内存。默认是M
OPTIONS="" ----监听的网络地址
然后把ip地址发给开发人员,开发的会使用api接口连接memcached.
- 测试
yum -y install telnet
telnet 192.168.192.130 11211
参数解释:
name:key的名字 自己定义
0:key的id号,需要和其他的key不一样
60:缓存过期时间,单位为秒,0为永远
8:字符串最大长度
安装php支持memcached的扩展模块
安装PHP7.0
- 下载安装包
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install php70w.x86_64 php70w-cli.x86_64 php70w-common.x86_64 php70w-gd.x86_64 php70w-ldap.x86_64 php70w-mbstring.x86_64 php70w-mcrypt.x86_64 php70w-mysql.x86_64 php70w-pdo.x86_64 php70w-devel zlib-devel -y
yum -y install php70w-fpm
yum install -y make gcc zlib-devel libmemcached-devel git
- 下载安装PHP memcached扩展包
git clone https://github.com/websupport-sk/pecl-memcache
cd pecl-memcache/
/usr/bin/phpize
./configure --with-php-config=/usr/bin/php-config
vim /etc/php.ini
保存退出,重启php-fpm即可。