memcache入门

memcache内存缓存技术是实现php语言 对内存 进行操作的中间介质。

memcache与redis的区别:

redis:

  支持比较多的数据类型(String/list/set/sortset/hash)

  redis支持集合计算的(set类型支持)

  每个key最大数据存储量为1G

  redis是新兴的内存缓存技术,对各方面支持不完善

  支持持久化操作

memcache:

老牌的内存缓存技术,对相关领域支持比较丰富

  windows和linux都可以使用

  各种框架(tp/yii等等)都支持使用

  session的信息可以非常方便的保存到该memcache中

  每个key保存的数据量最大为1M

  支持的数据类型比较单一,就是String类型

  不支持持久化

memcache相关参数设置:

 

到memcached.exe所在目录执行memcached即可前台启动memcache

 

设置开机启动项服务:

此时有一个错误提示:failed to install service or service already installed,此时只要右键cmd.exe以管理员方式运行再次设置即可。

在PHP中安装memcache扩展

复制php_memcache.dd到php扩展目录: memcache必须匹配php版本(memcache 5.3  = php 5.3),PHP版本是否线程安全、是VC9还是VC11的版本也得对应上。

下载地址:http://windows.php.net/downloads/pecl/releases/memcache/3.0.8/

修改php.ini,开启memcache扩展:

之后重启Apache

phpinfo查看memcache扩展成功:

php对memcache的使用:

memcache在php中就是一个操作类,具体使用:实例化对象、对象调用成员的过程。php中memcache的使用,其数据模型与redis一致,为 key - value。

memcache中key的名字的组成部分与redis比较相似,基本键盘可以输入的信息都可以作为key的名字部分,key的长度最大是250字节。空格和\n都可以使用,而Redis中不可以使用空格或者\n。

set方法:bool Memcache::set ( string $key , mixed $var [, int $flag [, int $expire ]] )

Memcache::set()key存储一个元素值为 var。参数expire是以秒为单位的失效时间, 如果设置为0表明该元素永不过期(但是它可能会因为为了给其他项分配空间而被删除)。如果你希望存储的元素 经过压缩(使用zlib),你可以设置flag的值为MEMCACHE_COMPRESSED

是否压缩的特点:压缩:内存空间节省、运行速度稍慢   /  未压缩:内存空间占据多、运行速度快

有效期设置有两种方式:

A. 时间差设置

从当前的时间点向后顺延指定秒的时间就过期

$me -> set(key, value, 是否压缩, 120); //120秒后到期

该方式有限制:最多的时间差就是30天(2592000秒),如果超过了30天的设置,会当做时间戳处理,立马过期。

B. 时间戳设置

从1970-1-1 0:0:0 到现在经过的秒数

$me -> set(key, value, 是否压缩, time()+120); //向后120秒到期

 

 

posted @ 2016-10-08 16:12  林豆包的长颈鹿  阅读(125)  评论(0编辑  收藏  举报