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