Memcache 五.设置分布式的memcache 六.利用thinkphp使用memcache的方法

1.1 Memcached的介绍

 MemCache是一个*、源码开放、高性能、分布式的内存对象缓存系统,用于动态Web应用以减轻数据库的负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度。

 MemCaChe是一个存储键值对的HashMap,在内存中对任意的数据(比如字符串、对象等)所使用的key-value存储,数据可以来自数据库调用、API调用,或者页面渲染的结果。

1.2 memcache的工作原理

由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable

Memcached管理这些HashTable,所以速度非常快。

Memcache
五.设置分布式的memcache
六.利用thinkphp使用memcache的方法

 

 

 

 

 

 

1.3 Memcache的作用

使用Memcache的网站一般流量都是比较大的,为了缓解数据库的压力,让Memcache作为一个缓存区域,把部分信息保存在内存中,在前端能够迅速的进行存取。那么一般的焦点就是集中在如何分担数据库压力和进行分布式,毕竟单台Memcache的内存容量的有限的。

Windows、Linux安装过程见课程67文档详解

 

php连接memcache(windows)

4.1 phpmemcache的基本操作

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对象

Memcache
五.设置分布式的memcache
六.利用thinkphp使用memcache的方法

具体实例2:在memcache中设置(缓存)数据,并读取数据

Memcache
五.设置分布式的memcache
六.利用thinkphp使用memcache的方法Memcache
五.设置分布式的memcache
六.利用thinkphp使用memcache的方法

具体实例3add的使用,不能添加一个已经存在的值,返回的就是false.

Memcache
五.设置分布式的memcache
六.利用thinkphp使用memcache的方法

Memcache
五.设置分布式的memcache
六.利用thinkphp使用memcache的方法

具体实例4:修改一个键名的值

Memcache
五.设置分布式的memcache
六.利用thinkphp使用memcache的方法

具体实例5:删除一个键名

Memcache
五.设置分布式的memcache
六.利用thinkphp使用memcache的方法

具体实例6:缓存数组和对象

Memcache
五.设置分布式的memcache
六.利用thinkphp使用memcache的方法

Memcache
五.设置分布式的memcache
六.利用thinkphp使用memcache的方法

Memcache
五.设置分布式的memcache
六.利用thinkphp使用memcache的方法

具体实例7:增加数据的值和减去数据的值

Memcache
五.设置分布式的memcache
六.利用thinkphp使用memcache的方法

Memcache
五.设置分布式的memcache
六.利用thinkphp使用memcache的方法

 

 

4.2 开启多个端口

设置不同的端口并开启:默认的端口是11211

具体实例1:开启另外一个端口11212

Memcache
五.设置分布式的memcache
六.利用thinkphp使用memcache的方法

具体实例2:使用11212这个端口

Memcache
五.设置分布式的memcache
六.利用thinkphp使用memcache的方法

 Memcache
五.设置分布式的memcache
六.利用thinkphp使用memcache的方法

5.1 pdo缓存

具体实例1pdo+mysql+memcache来缓存数据库中的数据

Memcache
五.设置分布式的memcache
六.利用thinkphp使用memcache的方法

 Memcache
五.设置分布式的memcache
六.利用thinkphp使用memcache的方法 

输出结果:从数据中读取数据

Memcache
五.设置分布式的memcache
六.利用thinkphp使用memcache的方法

输出结果是:从缓存中读取数据

Memcache
五.设置分布式的memcache
六.利用thinkphp使用memcache的方法

5.2添加服务器:addServer()

具体实例1:添加多台服务器,减轻服务器的负载量,或者我们称之为分布式部署。

Memcache
五.设置分布式的memcache
六.利用thinkphp使用memcache的方法

 Memcache
五.设置分布式的memcache
六.利用thinkphp使用memcache的方法

.利用thinkphp使用memcache的方法

6.1 S函数的使用

具体实例1:使用thinkphp中大S函数缓存数据

Memcache
五.设置分布式的memcache
六.利用thinkphp使用memcache的方法

Memcache
五.设置分布式的memcache
六.利用thinkphp使用memcache的方法

输出的结果:第一次从数据库中读取数据所用的时间

Memcache
五.设置分布式的memcache
六.利用thinkphp使用memcache的方法

输出的结果:第二次以后从缓存中读取数据所用的时间Memcache
五.设置分布式的memcache
六.利用thinkphp使用memcache的方法

S函数的总结说明:

1.初始化配置

S(array(

'type' =>'memcache',

'host'=>'127.0.0.1',

'port'=>'11211',)

);

2.给缓存数据赋值

S(键名,键值);

例如:

S(‘list’,$data);

3.读取缓存数据的值

S(键名);

例如:

S(‘list’);