php操作memcache
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 — 获取服务器统计信息