memcache在php中就是一个操作类
具体使用:实例化对象、对象调用成员的过程。
php中连接memcache服务器:
php中memcache的使用,其数据模型与redis一致,为 key - value。
在php中给memcache设置一个key,名称为“weather”
该key
的名字的组成部分与redis
比较相似,基本键盘可以输入的信息都可以作为key
的名字部分(意思空格,转义字符/n的也可以),key
的长度最大是
250
字节
。
$mem -> set(key, value,
是否压缩,
有效期
秒);
有效期设置有两种方式:
A.
时间差设置
从当前的
时间点
项后顺延指定秒的时间就到期(
过期)
$me -> set(key, value,
是否压缩, 120); //
向后120
秒到期
该方式有限制:最多的时间差就是
30
天(2592000
秒)
B.
时间戳设置
从1970-1-1 0:0:0
到现在经过的秒数
$me -> set(key, value,
是否压缩, time()+120); //
向后120
秒到期
时间差方式的有效期最大为30
天:
(
如果需要设置key
的有效期时间
大于
30
天的
,就必须使用“
时间戳
”方式设置)
或直接过期
各种数据类型的存储
php
的数据类型:
标量类型:int string boolean float
复合类型:array object resource null
memcache
存储标量类型数据,把他们都转化为”String
字符串”
类型存储。
存储复合类型数据,直接“原型”存储。
原型存储对资源的消耗比较大,为了节省资源,可以把复合类型信息都变为
字符串
形式进行存储,这样就需要对复合信息进行
序列化
操作:
serialize() unserialize()
$me -> set(key, value,
是否压缩
0/1,
有效期
秒);
是否压缩的特点:
压缩:内存空间节省、运行速度稍慢
未压缩:内存空间占据少多、运行速度快
压缩原理是zlib
技术:zlib---->php----->memcache
>
set(key, value,
是否压缩,
有效期);
key
不存在就增加,存在就
覆盖
>
delete(key);
删除key
>
get(key)
获得key
的信息
>
connect()
连接memcache
服务器
> add(key,value,
是否压缩,
有效期); //
增加一个key
到memcache
中
key
不存在就增加,存在就
报错
> close(); //
关闭memcache
服务器,该方法一般要放到代码的
最后
执行。
> decrement(key[,value=1]); //i--
对key
进行减1
操作
> increment(key[,value=1]); //i++
对key
进行加1
操作
> flush()
清空memcache
中全部key
> replace(key,value,
是否压缩,有效期);
替换一个key
key
不存在就报错,存在就替换
总结:
1. memcache
安装和开启服务使用
开启服务:①
前台开启
②
设置开机启动项服务
2.
给php
开放memcache
扩展
①
复制扩展文件php_memcache.dll
② php.ini
打开扩展参数
3. php
里边操作memcache
①
实例化对象
②
对象连接服务器
③
对象调用相关方法实现具体操作
set(key,value,
压缩,有效期)
get() delete() connect()
终端操作memcache
连接memcache
利用协议 telnet(远程连接协议),实现对memcache的操作。
telnet提示”不是内部或外部命令”:
解决:
控制面板---》程序和功能----》打开或关闭windows功能----》telnet客户端(选中/确定)
如果“打开或关闭windows功能”提示一个空白框
解决:不要使用windows系统的dos内部的telnet协议,打开之前的SecureCRT利用telnet协议连接memcache也可以。
> set key 是否压缩 有效期 数据长度[回车]
> 输入存储的数据
(注意:数据长度 与 数据真实长度必须一致)
> get key
> delete key
> flush_all //清空memcache数据
查看memcache的状态
在php中需要获得memcache的运行状态:
Memcache::getStats — 获取服务器统计信息