memcache函数详解

Memcache函数库是在PECL(PHP Extension Community Library)中,主要作用是搭建大容量的内存数据 的临时存放区域,在分布式的时候作用体现的非常明显,否则不建议使用。2 R8 d# i; q- z
memcache 函数所有的方法列表如下:


Memcache::add - 添加一个值,如果已经存在,则返回false 9 d" z+ L  |9 Q$ B: I8 T
Memcache::addServer - 添加一个可供使用的服务器 地址6 R' ?- Y; N7 G. _# f) F
Memcache::close - 关闭一个Memcache对象
7 B4 r" O( V& k# E6 a Memcache::connect - 创建一个Memcache对象
! p5 B% T0 s' ]% m* J; z) m memcache_debug - 控制调试功能 1 j2 b. ]0 T( ~2 C! L# c
Memcache::decrement - 对保存的某个key中的值进行减法操作
4 k# z, n) K% y$ L9 M Memcache::delete - 删除一个key值: A2 X1 d0 v1 P
Memcache::flush - 清除所有缓存的数据6 V! g& t4 }" j# m: ~
Memcache::get - 获取一个key值
! j$ D6 Q: Z# Y8 R/ ^- [ Memcache::getExtendedStats - 获取进程池中所有进程的运行系统 统计, H- x$ a( Z+ k
Memcache::getServerStatus - 获取运行服务 器的参数% s. [7 T& l% j. X' R
Memcache::getStats - 返回服务器的一些运行统计信息* _( z- Z6 /# S! P( S; G4 j9 k6 [
Memcache::getVersion - 返回运行的Memcache的版本信息
: f) G: {+ b2 @ Memcache::increment - 对保存的某个key中的值进行加法操作# k8 N3 L( J4 K% k
Memcache::pconnect - 创建一个Memcache的持久连接对象
3 ]6 `3 S2 E/ |5 n5 k' J& i Memcache::replace -对一个已有的key进行覆写操作6 Y  |: c# b2 r  _1 g
Memcache::set - 添加一个值,如果已经存在,则覆写
6 |) D$ h1 N/ E Memcache::setCompressThreshold - 对大于某一大小的数据进行压缩
. i. J/ ~; y: U. A. C( @ Memcache::setServerParams - 在运行时修改服务器的参数2 u! |2 Z$ _2 F* k1 }% V# d
$ N& V3 Z) J5 N& h' p, A5 z. w
Memcache::add 用法 2 p5 ]9 x; Y2 k  t; S

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

说明: ' i$ N6 V0 [2 W3 G8 B9 e
如果$key不存在的时候,使用这个函数来存储$var的值。功能相同的函数是memcache_add()。
. i/ b( z3 ?/ g* @: T8 O5 [! K! O4 U $ g1 i# [( i% a: |" p3 N
参数: , J" m( v& T7 T# {6 a
$key :将要存储的键值。+ j) [' M3 Q5 _- D0 l
$var :存储的值,字符型和整型会按原值保存,其他类型 自动序列化以后保存。' E4 c+ d5 S7 r- k! ^. F" v
$flag:是否用MEMCACHE_COMPRESSED来压缩存储的值,true表示压缩,false表示不压缩。- l+ J: G! j  x7 /# t/ ^
$expire:存储值的过期时间 ,如果为0表示不会过期,你可以用unix时间戳或者描述来表示从现在开始的时间,但是你在使用秒数表示的时候,不要超过2592000秒 (表示30天)。
) s( Z1 ~  [5 J7 d( {# e
& S* J$ v  x$ p" Z* i 返回值: 2 B" ~1 H  n  _0 P8 f2 A$ t/ h
如果成功则返回 TRUE,失败则返回 FALSE。如果$key值已经存在,则会返回FALSE。 其他情况下Memcache::add()的用法类似于Memcache::set()。
. N. Q. I. Y- `9 k6 c5 W   ^- u( e3 E& i: Q# [7 V
例子:
; _( Q  u# u3 _. b! /( B# /, ]

<?php

$memcache_obj = memcache_connect(”localhost”, 11211);
! q, P2 ?$ _0 x. k1 y8 @ /* 面向过程API */" S9 k$ F3 v* X2 n
memcache_add($memcache_obj, ’var_key’, ’test variable’, false, 30);9 P' m( a- R7 E/ P
/* 面向对象API */
& ]7 u: o# T' ]5 `/ E $memcache_obj->add(’var_key’, ’test variable’, false, 30);, v2 O6 ~) f: H+ T: G" E' Q  s
?>
% M+ D) `& i, ?4 @; U* L * }; p' o! u0 /. U' x: y& S
Memcache::addServer 用法
. |# o2 B" I* @% H2 s( S

bool Memcache::addServer ( string $host [, int $port [, bool $persistent [, int $weight [, int $timeout [, int $retry_interval [, bool $status [, callback $failure_callback ]]]]]]] )

说明:
& W: ?6 }1 q6 w+ Z! D* _+ M 添加一个可供使用的服务器地址到连接池中,连接用Memcache::addServer打开,脚本执行完后自动关闭,或者可以用Memcache::close()手动关闭。相同函数是memcache_add_server()。/ t* D8 Z1 ~& V: H
当用这个方法的时候(相对于Memcache::connect()和 Memcache::pconnect()方法),网络 连接只有等需要的时候才会建立,因此不会因为增加很多的服务器到连接池而增加系统负担,因为很多服务器可能没有使用。
+ Z/ ~2 ~* L5 v 故障恢复会发生在这个方法执行的任何阶段,只要其他的服务器是正常的,这些连接请求的失败用户 不会注意到。任何一种socket或者memcached服务器级的错误可以触发故障恢复。正常的客户端 错误比如增加一个存在的键值不会引发故障恢复。
1 R% Q% I, r( i' Z$ ~6 k8 c. H4 j
) w: P' u3 X! T8 Z, F  I6 D5 {. N 参数: # ^4 r) m# K, L. G
$host服务器的地址
* I3 [0 D. e+ X) Y4 E $port服务器端口
4 S/ M% P( R: n& t& w" P2 l, U4 X/ U $persistent是否是一个持久连接
7 /. B: _7 T" g! O) T $weight这台服务器在所有服务器中所占的权重
5 c. r. j$ ^/ `6 V: D9 l- e+ c9 l6 s7 { $timeout连接的持续时间. R* k: a  P& H* S" O
$retry_interval连接重试的间隔时间,默认为15,设置为-1表示不进行重试
" U/ R/ l; z3 ?3 S- ^1 a $status控制服务器的在线状态
# L5 d" g# E* [; J! z5 V0 Z $failure_callback允许设置一个回掉函数来处理错误信息。  G7 S' b9 s3 I; R7 H( L9 f
: W' k8 I( F5 j9 H' o
返回值:
# y) p3 s  o+ }6 b# P/ a0 [$ h 如果成功则返回 TRUE,失败则返回 FALSE。
5 r7 O9 M( k8 R) J
5 P) P/ a4 O9 ~+ R3 z9 ~ 例子:
2 ~' R7 F, `) w+ V

<?php

/* 面向对象API */
# F9 N8 E3 x3 ~, ~7 I $memcache = new Memcache;( e" l, p1 e9 n0 q" B2 a/ d$ T5 l
$memcache->addServer(’memcache_host’, 11211);  V2 ]# B4 n. N3 L6 e" E
$memcache->addServer(’memcache_host2′, 11211);
* o3 O+ _" D) }' X, N. m /* 面向过程 API */
0 w& _( o% @' j% W0 d  ]0 o $memcache_obj = memcache_connect(’memcache_host’, 11211);
1 /3 l( u3 I, W3 u memcache_add_server($memcache_obj, ’memcache_host2′, 11211);
$ Z1 S% Z( |3 _. t, e& p ?>
+ r* Y9 r# x8 a) N, i- S
! J: ~. }' s( ^  ^, v1 j   f0 Z, w5 f" T7 P8 K
Memcache::close 用法 " v+ @: |* _* @& c0 j: V1 q
bool Memcache::close ( void )( }0 C# U4 |" `% K
说明:
- V! }( q+ b. [0 R# ?: Y 关闭memcache服务器连接。这个函数不会关闭长连接,长连接只有在web 服务器关闭或者重启的时候才会关闭。相同的函数memcache_close()0 /# K4 @' J# d8 H% w

, ?( l' L; s3 O5 ~' ? 返回值: " ~4 o& L7 ^. J- e% q/ m# e
如果成功则返回 TRUE,失败则返回 FALSE。7 q$ t1 A# k0 a) p! C& u

4 @. S# P& O% _ 例子: ; ^8 ^& h0 m6 U: ~

<?php

/* 面向过程 API */" o/ M0 o& W" `- M6 L: J6 h4 Q' S
$memcache_obj = memcache_connect(’memcache_host’, 11211);
( T7 O% _/ A  p% p* X  g/ ]0 f% g /*
5 ]7 ~3 W% I/ M9 X- P

执行一些代码 .." r6 F( B0 J6 t* X$ q' [; v
*/; K# B- Y; t; a
memcache_close($memcache_obj);

/* 面向对象 API *// u) A/ K# Y* i
$memcache_obj = new Memcache;( v1 J0 G( h- B$ L3 |8 Q( U! Z) U
$memcache_obj->connect(’memcache_host’, 11211);2 e3 V- O3 G& G7 |
/*

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值