1.1 Memcached的介绍
MemCache是一个自由、源码开放、高性能、分布式的内存对象缓存系统,用于动态Web应用以减轻数据库的负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度。
MemCaChe是一个存储键值对的HashMap,在内存中对任意的数据(比如字符串、对象等)所使用的key-value存储,数据可以来自数据库调用、API调用,或者页面渲染的结果。
1.2 memcache的工作原理
由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable
,Memcached管理这些HashTable,所以速度非常快。
1.3 Memcache的作用
使用Memcache的网站一般流量都是比较大的,为了缓解数据库的压力,让Memcache作为一个缓存区域,把部分信息保存在内存中,在前端能够迅速的进行存取。那么一般的焦点就是集中在如何分担数据库压力和进行分布式,毕竟单台Memcache的内存容量的有限的。
Windows、Linux安装过程见课程67文档详解
php连接memcache(windows中)
4.1 php的memcache的基本操作
set():设置一个key给它赋值
set(key,val,zip,expire)
key:键名
val:键值
zip:数据是否压缩,压缩:MEMCACHE_COMPRESSED
expire:过期时间,0:永不过期
add():添加一个key给它赋值,它只能添加一个键名,不能添加一个已经存在的键名。
get():得到Key的值
replace():修改一个key的值
delete();删除一个Key的值
increment:给一个键名增加值
decrement:给一个键名减去值
具体实例1:创建一个memcache对象
具体实例2:在memcache中设置(缓存)数据,并读取数据
具体实例3:add的使用,不能添加一个已经存在的值,返回的就是false.
具体实例4:修改一个键名的值
具体实例5:删除一个键名
具体实例6:缓存数组和对象
具体实例7:增加数据的值和减去数据的值
4.2 开启多个端口
设置不同的端口并开启:默认的端口是11211
具体实例1:开启另外一个端口11212
具体实例2:使用11212这个端口
五.设置分布式的memcache
5.1 pdo缓存
具体实例1:pdo+mysql+memcache来缓存数据库中的数据
输出结果:从数据中读取数据
输出结果是:从缓存中读取数据
5.2添加服务器:addServer()
具体实例1:添加多台服务器,减轻服务器的负载量,或者我们称之为分布式部署。
六.利用thinkphp使用memcache的方法
6.1 大S函数的使用
具体实例1:使用thinkphp中大S函数缓存数据
输出的结果:第一次从数据库中读取数据所用的时间
输出的结果:第二次以后从缓存中读取数据所用的时间
大S函数的总结说明:
1.初始化配置
S(array(
'type' =>'memcache',
'host'=>'127.0.0.1',
'port'=>'11211',)
);
2.给缓存数据赋值
S(键名,键值);
例如:
S(‘list’,$data);
3.读取缓存数据的值
S(键名);
例如:
S(‘list’);