一、Memcached和Memcache的区别:
网上关于Memcached和Memcache的区别的理解众说纷纭,我个人的理解是:
Memcached是一个内存缓存系统,而Memcache是php的一个扩展,是php用于操作和管理Memcached的工具。如果安装了Memcached但没有安装Memcache,php无法操控Memcached,但是可以使用命令行来操控Memcached;如果安装了Memcache却没安装Memcached,则无法使用。只有同时安装了Memcached和Memcache,才能在PHP中使用Memcached。
二、安装memcached:
1.由于memcached比较小,所以解压开就可以使用.
2.解压完后为了方便在命令行里进行操作,我们将其加入环境变量当中.
3.测试是否安装成功:
打开cmd,进入memcached解压后存放的目录,运行命令:
memcached -h,若安装成功,会出现如下界面:
4.启动memcached:
Memcached客户端与服务器端的通信比较简单,使用的基于广西的协议,而不是二进制协议.(http协议也是这样),因为此匀通过telnet即可与memcached作交互.
打开命令行 打开telnet
命令格式:telnet host 端口
telnet 127.0.0.1 11211
三、练习
1.Memcached的命令
分增删改查4类,沿着这个思路来学习.
语法:add key flag expire length
key 给值起一个独特的名字
flag 标志,要求为一个正整数
expire 有效期
length 缓存的长度(字节为单位)
flag 的意义:
memcached 基本文本协议,传输的东西,理解成字符串来存储.
想:让你存一个 php 对象,和一个 php 数组,怎么办?
答:序列化成字符串,往出取的时候,自然还要反序列化成 对象/数组/json 格式等等.
这时候, flag 的意义就体现出来了.
比如, 1 就是字符串, 2 反转成数组 3,反序列化对象…..
expire 的意义:
设置缓存的有效期,有 3 种格式
1:设置秒数, 从设定开始数,第 n 秒后失效.
2:时间戳, 到指定的时间戳后失效.
比如在团购网站,缓存的某团到中午 12:00 失效. add key 0 1379209999 6
3: 设为 0. 不自动失效.
注: 有种误会,设为 0,永久有效.错误的.
1:编译 memcached 时,指定一个最长常量,默认是 30 天.
所以,即使设为 0,30 天后也会失效.
2:可能等不到 30 天,就会被新数据挤出去.
delete 删除
delete key [time seconds]
删除指定的 key. 如加可选参数 time,则指删除 key,并在删除 key 后的 time 秒内,不允许
get,add,replace 操作此 key.
replace 替换
replace key flag expire length
参数和 add 完全一样,不单独写
get 查询
get key
返回 key 的值
set 是设置和修改值
参数和 add ,replace 一样,但功能不一样.
如下比较:
用 add 时, key 不存在,才能建立此键值.
但对于已经存在的键,可以用 replace 进行替换/更改
repalce,key 存在时,才能修改此键值,如上图,date 不存在,则没改成功.
而 set 想当于有 add replace 两者的功能.
set key flag expire leng 时
如果服务器无此键 —-> 增加的效果
如果服务器有此键 —-> 修改的效果.
如下图的演示,该图中,name 是已经存在,而 date 原本不存在. set 都可以成功设置他们.