PHP session使用 memcached的注意几个细节
2011-01-06 14:10
519 查看
@ini_set('session.save_path',$mem_server_list);
,$mem_server_list 对应的列表
参数和 Memcache::addServer 一样
多个服务器用 ,分开连接
比如
@ini_set('session.save_path','tcp://192.168.1.1:1111?persistent=1
,tcp://192.168.1.125:12555,192.168.1.3:1110');
memcache也供给用于通讯对话(session_handler)的处置。
更 多Memcache 模块相干信息可以到 http://www.danga.com/memcached/
查阅。
memcache在php.ini中的设置装备摆设项列表
有关 PHP_INI_* 常量进一步的细节与界说拜见PHP手册php.ini 设置装备摆设选项。
Boolean
在错误时是否透明的妨碍转移到其他办事器上处置(注:妨碍转移是动词)。
memcache.max_failover_attempts
integer
界说办事器的数目类设 置和获取数据,只结合 memcache.allow_failover 一同利用。
memcache.chunk_size
integer
数据将会被分成指定巨 细(chunk_size)的块来传输,这个值(chunk_size)越小,写操纵的恳求就越多,若是发明其他的无法诠释的减速,请试着将这个值增大到 32768.
memcache.default_port
string
当毗连memcache办事器的时辰,若是没有指定端口这个默认的tcp端口将被用。
memcache.hash_strategy
string
节制在映射 key 到办事器时利用哪种计谋。设置这个值同等能使hash 算法持之以恒的利用于办事器接管添加大概删除池中变量时将不会被从头映射。设置这个值以尺度的成果在旧的计谋被利用时。
memcache.hash_function
string
节制哪种 hsah 函数被应用于 key映射 到办事器历程中,默认值“crc32”利用 CRC32 算法,而“fnv”则暗示利用 FNV-1a 算法。
session.save_handler
string
经由过程设置这个值为 memcache来确定利用 memcache 用于通讯对话的处置(session handler)。
session.save_path
string
界说用于通话存储的各办 事器链接的分开标记,比方:“tcp://host1:11211, tcp://host2:11211”。
每办事器个链接可以包罗被接 管于该办事器的参数,比力近似利用 Memcache::addServer()
来添加的办事器,比方:“tcp://host1:11211?persistent=1&weight=1&timeout=1&
amp; amp; amp; amp;retry_interval=15”。
memcache 常量列表
毗连memcache办事器
$port(int) 办事器tcp端标语,默认值是11211
$timeout 毗连memcache历程的失效时候,在点窜它的默认值1的时辰要三思,以免落空全部memcache缓存的上风导致毗连变得很慢。
以常毗连体例毗连办事器
$port(int) 办事器tcp端标语,默认值是11211
$timeout 毗连memcache历程的失效时候,在点窜它的默认值1的时辰要三思,以免落空全部memcache缓存的上风导致毗连变得很慢。
封闭工具 (对常毗连不起感化)
$persistent [, int $weight [, int $timeout [, int $retry_interval [,
bool $status [, callback $failure_callback ]]]]]]] )
向工具添加一个办事器 (注:addServer没有毗连到办事器的行动,以是在memcache历程没有启动的时辰,实行addServer乐成也会返回true)
port 端标语,默以为 11211
persistent 是否利用常毗连,默以为 TRUE
weight 网站指数,在多个办事器设置中占的比重
timeout 毗连办事器失效的秒数,点窜默认值 1 时要三思,有大概落空全部缓存方面的上风导致毗连变得很慢
retry_interval 办事器毗连失败时的重试频率,默认是 15 秒一次,若是设置为 -1 将克制主动重试,当扩展中加载了 dynamically via dl() 时,无论本参数仍是常毗连设置参数城市失效。
每一个失败的办事器在失效前都有独自的保存期,选择后端恳求时会被跳过而不平务于恳求。一个过时的毗连将乐成的从头毗连大概被标识表记标帜为失败的
毗连期 待下一次重试。这种结果便是说每一个 web server 的子历程在办事于页面时的重试毗连都跟他们本身的重试频率有关。
status 节制办事器是否被标识表记标帜为 online,设置这个参数为 FALSE 并设置
retry_interval 为 -1
可以使毗连失败的办事器被放到一个形貌不相应恳求的办事器池子中,对这个办事器的恳求将失败,接管设置为失败办事器的设置,默认参数为
TRUE,代表该办事器可以被界说为 online。
failure_callback 失败时的回调函数,函数的两个参数为失败办事器的 hostname 和 port
注:在测试 addServer函数的时辰我们首要测试了其参数retry_interval和status
上
面的例子中若是localhost办事器down掉或是memcache保卫历程当掉,实行恳求的时辰毗连办事器失败时算起15秒后会主动重试毗连办事
器,可是在这15秒内不会去毗连这个办事器,便是只要有恳求,没15秒就会测验考试毗连办事器,可是每个办事器毗连重试是自力的。好比说我一次添加了两个
办事器一个是localhost,一个是172.16.100.60,它们别离是从各自毗连失败阿谁时候算起,只要对各自办事器有恳求就会每隔15秒去毗
连各自的办事器的。
2.4.4.2.retry_interval和status连系利用的环境
在 上面的retrt_interval=-1,
status=false这种环境下,将毗连失败的办事器放到一个不相应恳求的一个池子中,是以对key分派的算法也就没有影响了,而他是当即返回错误失
败仍是妨碍转移还要看memcache.allow_failover的设置,实行set, add,
replace,get等恳求的时辰城市失败返回false,纵然memcache历程运行正常。
无论memcache历程的正常运行仍是当掉,status为true的时辰getServerStatus的成果都是 true,反之则为false
可是在memcache历程正常运行的环境下,对set,add,replace,get等函数都没有影响。
添加一个要缓存的数据若是作为这个缓存的数据的键在办事器上还不存在的环境下,
var 值,整型将直接存储,其他范例将被序列化存储 ,其值最大为1M
flag 是否利用 zlib 压缩
,当flag=MEMCACHE_COMPRESSED的时侯,数据很小的时辰不会接纳zlib压缩,只稀有据到达必然巨细才对数据举行zlib压
缩。(没有详细的测试数据举行压缩的最小值是几多)
expire 过时时候,0 为永不外期,可利用 unix 时候戳格局或间隔当前时候的秒数,设为秒数时不克不及大于 2592000(30 天)
替代一个指定 已存在key 的的缓存变量内容
var 值,整型将直接存储,其他范例将被序列化存储,其值最大为1M
flag 是否利用 zlib 压缩 ,当flag=MEMCACHE_COMPRESSED的时侯,数据很小的时辰不会接纳zlib压缩,只稀有据到达必然巨细才对数据举行zlib压 缩。(没有详细的测试数据举行压缩的最小值是几多)
expire 过时时候,0 为永不外期,可利用 unix 时候戳格局或间隔当前时候的秒数,设为秒数时不克不及大于 2592000(30 天)
设置一个指定 key 的缓存变量内容
var 值,整型将直接存储,其他范例将被序列化存储,其值最大为1M
flag 是否利用 zlib 压缩 ,当flag=MEMCACHE_COMPRESSED的时侯,数据很小的时辰不会接纳zlib压缩,只稀有据到达必然巨细才对数据举行zlib压 缩。(没有详细的测试数据举行压缩的最小值是几多)
expire 过时时候,0 为永不外期,可利用 unix 时候戳格局或间隔当前时候的秒数,设为秒数时不克不及大于 2592000(30 天)
array Memcache::get ( array $keys [, array &$flags ] )
获取某个 key 的变量缓存值
flags 若是是传址某个变量,获取缓存值被set或是add的flag成果将被存于该变量
若是传出的key的数组中的key都不存在,返回的成 果是一个空数组,反之则返回key与缓存值相干联的联系关系数组
删 除某一个变量的缓存
timeout 删除这项的时候,若是它即是0,这项将被立即删除反之若是它即是30秒,那么这项被删除在30秒内
2.9.4.典范
清空全部缓存内容,不是真的删除缓存的内容,只是使全部 变量的缓存过时,使内存中的内容被重写
获取全部办事器扩展静态信息
slabid 用于按指定范例结合设置 cache 堆为有用的片到堆中。缓存堆被被号令绑定到办事器上并被严酷的用于调试用途
limit 用于按指定范例结合设置 cache 堆为输入的数字所限定的巨细到堆,默认值为 100
获取末了添加办事器静态信息
slabid 用于按指定范例结合设置 cache 堆为有用的片到堆中。缓存堆被被号令绑定到办事器上并被严酷的用于调试用途
limit 用于按指定范例结合设置 cache 堆为输入的数字所限定的巨细到堆,默认值为 100
经 由过程输入的 host 及 port 来获取响应的办事器信息
port 端标语,默以为 11211
获取办事器的版本号信息
设置压缩极限
min_saving 指定的最低压缩比率,值必需介于 0 - 1 之间,默以为 0.2 代表 20% 的压缩比率
$timeout [, int $retry_interval [, bool $status [, callback
$failure_callback ]]]]] )
Memcache version 2.1.0 后增添的函数,运行时设置办事器参数
port 端标语,默以为 11211
timeout 超时毗连失效的秒数,点窜默认值 1 时要三思,有大概落空全部缓存方面的上风导致毗连变得很慢
retry_interval 办事器毗连失败时的重试频率,默认是 15 秒一次,若是设置为 -1
将克制主动重试,当扩展中加载了 dynamically via dl()
时,无论本参数仍是常毗连设置参数城市失效。每一个失败的办事器在失效前都有独自的保存期,选择后端恳求时会被跳过而不平务于恳求。一个过时的毗连将乐成
的从头毗连大概被标识表记标帜为失败的毗连期待下一次重试。这种结果便是说每一个 web server
的子历程在办事于页面时的重试毗连都跟他们本身的重试频率有关。
status 节制办事器是否被标识表记标帜为 online, 设置这个参数为 FALSE 并设置
retry_interval 为 -1
可以使毗连失败的办事器被放到一个形貌不相应恳求的办事器池子中,对这个办事器的恳求将失败,接管设置为失败办事器的设置,默认参数为
TRUE,代表该办事器可以被界说为 online。
failure_callback 失败时的回调函数,函数的两个参数为失败办事器的 hostname 和 port
给 指定 key 的缓存变量一个增值,若是该变量不是数字时不会被转化为数字,这个增值将会加到该变量原有的数字之上,变量不存在不会新增变量,对付压缩存储的变量不要利 用本函数由于响应的取值方式会失败。
var 值,整型将直接存储,其他范例将被序列化存储
给 指定 key 的缓存变量一个递减值,与 increment 操纵近似,将在原有变量根本上减去这个值,该项的值将会在转化为数字后减去,新项的值不会小于 0,对付压缩存储的变量不要利用本函数由于响应的取值方式会失败。
var 值,整型将直接存储,其他范例将被序列化存储
设置 memcache 的调试器是否开启,值为 TRUE 或 FALSE。 受影响于 php 安置时是否利用了 --enable-debug 选项,若是利用了该函数才会返回 TRUE,其他环境将始终返回 FALSE。
from:http://www.doudou8.net/post/cid~1501
,$mem_server_list 对应的列表
参数和 Memcache::addServer 一样
多个服务器用 ,分开连接
比如
@ini_set('session.save_path','tcp://192.168.1.1:1111?persistent=1
,tcp://192.168.1.125:12555,192.168.1.3:1110');
1.简介
memcache模块是一个高效的保卫历程,供给用于内存缓存的历程式法式和面向工具的便利的接口,出格是对 付计划动态web法式时削减对数据库的拜候。memcache也供给用于通讯对话(session_handler)的处置。
更 多Memcache 模块相干信息可以到 http://www.danga.com/memcached/
查阅。
1.1.memcache 在php.ini中的设置装备摆设项列表
名称 | 默认值 | 是否可变 | 转变日记 |
memcache.allow_failover | “1” | PHP_INI_ALL | Available since memcache 2.0.2. |
memcache.max_failover_attempts | "20" | PHP_INI_ALL | Available since memcache 2.1.0. |
memcache.chunk_size | "8192" | PHP_INI_ALL | Available since memcache 2.0.2. |
memcache.default_port | "11211" | PHP_INI_ALL | Available since memcache 2.0.2. |
memcache.hash_strategy | "standard" | PHP_INI_ALL | Available since memcache 2.2.0. |
memcache.hash_function | "crc32" | PHP_INI_ALL | Available since memcache 2.2.0. |
session.save_handler | "files" | PHP_INI_ALL | Supported since memcache 2.1.2 |
session.save_path | "" | PHP_INI_ALL | Supported since memcache 2.1.2 |
1.2.以下是设置装备摆设项的扼要诠释
memcache.allow_failoverBoolean
在错误时是否透明的妨碍转移到其他办事器上处置(注:妨碍转移是动词)。
memcache.max_failover_attempts
integer
界说办事器的数目类设 置和获取数据,只结合 memcache.allow_failover 一同利用。
memcache.chunk_size
integer
数据将会被分成指定巨 细(chunk_size)的块来传输,这个值(chunk_size)越小,写操纵的恳求就越多,若是发明其他的无法诠释的减速,请试着将这个值增大到 32768.
memcache.default_port
string
当毗连memcache办事器的时辰,若是没有指定端口这个默认的tcp端口将被用。
memcache.hash_strategy
string
节制在映射 key 到办事器时利用哪种计谋。设置这个值同等能使hash 算法持之以恒的利用于办事器接管添加大概删除池中变量时将不会被从头映射。设置这个值以尺度的成果在旧的计谋被利用时。
memcache.hash_function
string
节制哪种 hsah 函数被应用于 key映射 到办事器历程中,默认值“crc32”利用 CRC32 算法,而“fnv”则暗示利用 FNV-1a 算法。
session.save_handler
string
经由过程设置这个值为 memcache来确定利用 memcache 用于通讯对话的处置(session handler)。
session.save_path
string
界说用于通话存储的各办 事器链接的分开标记,比方:“tcp://host1:11211, tcp://host2:11211”。
每办事器个链接可以包罗被接 管于该办事器的参数,比力近似利用 Memcache::addServer()
来添加的办事器,比方:“tcp://host1:11211?persistent=1&weight=1&timeout=1&
amp; amp; amp; amp;retry_interval=15”。
1.3.memcache常量列表
名称 | 范例 | 形貌 |
MEMCACHE_COMPRESSED | integer | 用于调解在利用 Memcache::set(), Memcache::add() 和 Memcache::replace() 几个函数时的压缩比率。 |
MEMCACHE_HAVE_SESSION | integer | 若是通讯对话的处置(session handler)被许可利用其值为 1,其他环境值为 0。 |
2Memcache Functions 函数列表
2.1.Memcache::connect
2.1.1. 申明
bool Memcache::connect ( string $host [, int $port [, int $timeout ]] )毗连memcache办事器
2.1.2.参数
$host(string) 办事器域名或ip$port(int) 办事器tcp端标语,默认值是11211
$timeout 毗连memcache历程的失效时候,在点窜它的默认值1的时辰要三思,以免落空全部memcache缓存的上风导致毗连变得很慢。
2.1.3. 返回值
若是乐成则返回true,失败则返回false2.1.4.典范
/* procedural API */ $memcache_obj = memcache_connect('memcache_host', 11211); /* OO API */ $memcache = new Memcache; $memcache->connect('memcache_host', 11211); ?>
2.2.Memcache::pconnect
2.2.1. 申明
bool Memcache::pconnect ( string $host [, int $port [, int $timeout ]] )以常毗连体例毗连办事器
2.2.2.参数
$host(string) 办事器域名或ip$port(int) 办事器tcp端标语,默认值是11211
$timeout 毗连memcache历程的失效时候,在点窜它的默认值1的时辰要三思,以免落空全部memcache缓存的上风导致毗连变得很慢。
2.2.3. 返回值
若是乐成则返回true,失败则返回false2.2.4.典范
/* procedural API */ $memcache_obj = memcache_pconnect('memcache_host', 11211); /* OO API */ $memcache_obj = new Memcache; $memcache_obj->pconnect('memcache_host', 11211); ?>
2.3.Memcache::close
2.3.1. 申明
bool Memcache::close ( void )封闭工具 (对常毗连不起感化)
2.3.2. 返回值
若是乐成则返回true,失败则返回false2.3.3.典范
/* procedural API */ $memcache_obj = memcache_connect('memcache_host', 11211); /* do something here .. */ memcache_close($memcache_obj); /* OO API */ $memcache_obj = new Memcache; $memcache_obj->connect('memcache_host', 11211); /* do something here .. */ $memcache_obj->close(); ?>
2.4.Memcache::addServer
2.4.1. 申明
bool Memcache::addServer ( string $host [, int $port [, bool$persistent [, int $weight [, int $timeout [, int $retry_interval [,
bool $status [, callback $failure_callback ]]]]]]] )
向工具添加一个办事器 (注:addServer没有毗连到办事器的行动,以是在memcache历程没有启动的时辰,实行addServer乐成也会返回true)
2.4.2. 参数
host 办事器域名或 IPport 端标语,默以为 11211
persistent 是否利用常毗连,默以为 TRUE
weight 网站指数,在多个办事器设置中占的比重
timeout 毗连办事器失效的秒数,点窜默认值 1 时要三思,有大概落空全部缓存方面的上风导致毗连变得很慢
retry_interval 办事器毗连失败时的重试频率,默认是 15 秒一次,若是设置为 -1 将克制主动重试,当扩展中加载了 dynamically via dl() 时,无论本参数仍是常毗连设置参数城市失效。
每一个失败的办事器在失效前都有独自的保存期,选择后端恳求时会被跳过而不平务于恳求。一个过时的毗连将乐成的从头毗连大概被标识表记标帜为失败的
毗连期 待下一次重试。这种结果便是说每一个 web server 的子历程在办事于页面时的重试毗连都跟他们本身的重试频率有关。
status 节制办事器是否被标识表记标帜为 online,设置这个参数为 FALSE 并设置
retry_interval 为 -1
可以使毗连失败的办事器被放到一个形貌不相应恳求的办事器池子中,对这个办事器的恳求将失败,接管设置为失败办事器的设置,默认参数为
TRUE,代表该办事器可以被界说为 online。
failure_callback 失败时的回调函数,函数的两个参数为失败办事器的 hostname 和 port
2.4.3.返回值
乐成返回 TRUE,失败返回 FALSE。注:在测试 addServer函数的时辰我们首要测试了其参数retry_interval和status
2.4.4.典范
2.4.4.1.retry_interval 参数的测试$mem = new Memcache; $is_add = $mem->addServer('localhost', 11211, true, 1, 1, 15, true); // retrt_interval=15 $is_set = $mem->set('key1', '中华人民共和国'); ?>
上
面的例子中若是localhost办事器down掉或是memcache保卫历程当掉,实行恳求的时辰毗连办事器失败时算起15秒后会主动重试毗连办事
器,可是在这15秒内不会去毗连这个办事器,便是只要有恳求,没15秒就会测验考试毗连办事器,可是每个办事器毗连重试是自力的。好比说我一次添加了两个
办事器一个是localhost,一个是172.16.100.60,它们别离是从各自毗连失败阿谁时候算起,只要对各自办事器有恳求就会每隔15秒去毗
连各自的办事器的。
2.4.4.2.retry_interval和status连系利用的环境
$mem = new Memcache; $is_add = $mem->addServer('localhost', 11211, true, 1, 1, -1, false); // retrt_interval=-1, status=false $is_set = $mem->set('key1', '中华人民共和国'); ?>
在 上面的retrt_interval=-1,
status=false这种环境下,将毗连失败的办事器放到一个不相应恳求的一个池子中,是以对key分派的算法也就没有影响了,而他是当即返回错误失
败仍是妨碍转移还要看memcache.allow_failover的设置,实行set, add,
replace,get等恳求的时辰城市失败返回false,纵然memcache历程运行正常。
2.4.4.3.status参数的测 试
除了与retry_interval连系利用,status零丁利用的环境会对函数memcache::getServerStatu 得到的成果发生影响无论memcache历程的正常运行仍是当掉,status为true的时辰getServerStatus的成果都是 true,反之则为false
可是在memcache历程正常运行的环境下,对set,add,replace,get等函数都没有影响。
2.5.Memcache::add
2.5.1. 申明
bool Memcache::add ( string $key , mixed $var [, int $flag [, int $expire ]] )添加一个要缓存的数据若是作为这个缓存的数据的键在办事器上还不存在的环境下,
2.5.2. 参数
key 缓存数据的键 其长度不克不及跨越250个字符var 值,整型将直接存储,其他范例将被序列化存储 ,其值最大为1M
flag 是否利用 zlib 压缩
,当flag=MEMCACHE_COMPRESSED的时侯,数据很小的时辰不会接纳zlib压缩,只稀有据到达必然巨细才对数据举行zlib压
缩。(没有详细的测试数据举行压缩的最小值是几多)
expire 过时时候,0 为永不外期,可利用 unix 时候戳格局或间隔当前时候的秒数,设为秒数时不克不及大于 2592000(30 天)
2.5.3.返回值
乐成返回 TRUE,失败返回 FALSE,若是这个键已经存在,其他方面memcache:;add()的举动与memcache::set相似2.5.4. 典范
$memcache_obj = memcache_connect("localhost", 11211); /* procedural API */ memcache_add($memcache_obj, 'var_key', 'test variable', FALSE, 30); /* OO API */ $memcache_obj->add('var_key', 'test variable', FALSE, 30); ?>
2.6.Memcache::replace
2.6.1. 申明
bool Memcache::replace ( string $key , mixed $var [, int $flag [, int $expire ]] )替代一个指定 已存在key 的的缓存变量内容
2.6.2.参数
key 缓存数据的键, 其长度不克不及跨越250个字符var 值,整型将直接存储,其他范例将被序列化存储,其值最大为1M
flag 是否利用 zlib 压缩 ,当flag=MEMCACHE_COMPRESSED的时侯,数据很小的时辰不会接纳zlib压缩,只稀有据到达必然巨细才对数据举行zlib压 缩。(没有详细的测试数据举行压缩的最小值是几多)
expire 过时时候,0 为永不外期,可利用 unix 时候戳格局或间隔当前时候的秒数,设为秒数时不克不及大于 2592000(30 天)
2.6.3.返回值
乐成返回 TRUE,失败返回 FALSE。2.6.4.典范
$memcache_obj = memcache_connect('memcache_host', 11211); /* procedural API */ memcache_replace($memcache_obj, "test_key", "some variable", FALSE, 30); /* OO API */ $memcache_obj->replace("test_key", "some variable", FALSE, 30); ?>
2.7.Memcache::set
2.7.1. 申明
bool Memcache::set ( string $key , mixed $var [, int $flag [, int $expire ]] )设置一个指定 key 的缓存变量内容
2.7.2.参数
key 缓存数据的键, 其长度不克不及跨越250个字符var 值,整型将直接存储,其他范例将被序列化存储,其值最大为1M
flag 是否利用 zlib 压缩 ,当flag=MEMCACHE_COMPRESSED的时侯,数据很小的时辰不会接纳zlib压缩,只稀有据到达必然巨细才对数据举行zlib压 缩。(没有详细的测试数据举行压缩的最小值是几多)
expire 过时时候,0 为永不外期,可利用 unix 时候戳格局或间隔当前时候的秒数,设为秒数时不克不及大于 2592000(30 天)
2.7.3.返回值
乐成返回 TRUE,失败返回 FALSE。2.7.4.典范
/* procedural API */ /* connect to memcached server */ $memcache_obj = memcache_connect('memcache_host', 11211); /* set value of item with key 'var_key' using 0 as flag value, compression is not used expire time is 30 second */ memcache_set($memcache_obj, 'var_key', 'some variable', 0, 30); echo memcache_get($memcache_obj, 'var_key'); ?> /* OO API */ $memcache_obj = new Memcache; /* connect to memcached server */ $memcache_obj->connect('memcache_host', 11211); /* set value of item with key 'var_key', using on-the-fly compression expire time is 50 seconds */ $memcache_obj->set('var_key', 'some really big variable', MEMCACHE_COMPRESSED, 50); echo $memcache_obj->get('var_key'); ?>
2.8.Memcache::get
2.8.1. 申明
string Memcache::get ( string $key [, int &$flags ] )array Memcache::get ( array $keys [, array &$flags ] )
获取某个 key 的变量缓存值
2.8.2.参数
key 缓存值的键flags 若是是传址某个变量,获取缓存值被set或是add的flag成果将被存于该变量
2.8.3.返回值
返 回缓存的指定 key 的变量内容大概是在失败或该变量的值不存在时返回 FALSE若是传出的key的数组中的key都不存在,返回的成 果是一个空数组,反之则返回key与缓存值相干联的联系关系数组
2.8.4.典范
/* procedural API */ $memcache_obj = memcache_connect('memcache_host', 11211); $var = memcache_get($memcache_obj, 'some_key'); /* OO API */ $memcache_obj = new Memcache; $memcache_obj->connect('memcache_host', 11211); $var = $memcache_obj->get('some_key'); /* You also can use array of keys as a parameter. If such item wasn't found at the server, the result array simply will not include such key. */ /* procedural API */ $memcache_obj = memcache_connect('memcache_host', 11211); $var = memcache_get($memcache_obj, Array('some_key', 'another_key')); //若是some_key,another_key不存在 $var = array(); //若是some_key,another_key存在 $var = array('some_key'=>'缓存值', 'another_key'=>'缓存值'); /* OO API */ $memcache_obj = new Memcache; $memcache_obj->connect('memcache_host', 11211); $var = $memcache_obj->get(Array('some_key', 'second_key')); ?>
2.9.Memcache::delete
2.9.1. 申明
bool Memcache::delete ( string $key [, int $timeout ] )删 除某一个变量的缓存
2.9.2.参数
key 缓存的键 键值不克不及为null和'’,当它即是前面两个值的时辰php会有告诫错误。timeout 删除这项的时候,若是它即是0,这项将被立即删除反之若是它即是30秒,那么这项被删除在30秒内
2.9.3.返回值
乐 成返回 TRUE,失败返回 FALSE。2.9.4.典范
/* procedural API */ $memcache_obj = memcache_connect('memcache_host', 11211); /* after 10 seconds item will be deleted by the server */ memcache_delete($memcache_obj, 'key_to_delete', 10); /* OO API */ $memcache_obj = new Memcache; $memcache_obj->connect('memcache_host', 11211); $memcache_obj->delete('key_to_delete', 10); ?>
2.10.Memcache::flush
2.10.1. 申明
bool Memcache::flush ( void )清空全部缓存内容,不是真的删除缓存的内容,只是使全部 变量的缓存过时,使内存中的内容被重写
2.10.2.返回值
乐成返回 TRUE,失败返回 FALSE。2.10.3. 典范
/* procedural API */ $memcache_obj = memcache_connect('memcache_host', 11211); memcache_flush($memcache_obj); /* OO API */ $memcache_obj = new Memcache; $memcache_obj->connect('memcache_host', 11211); $memcache_obj->flush(); ?>
2.11.Memcache::getExtendedStats
2.11.1. 申明
array Memcache::getExtendedStats ([ string $type [, int $slabid [, int $limit ]]] )获取全部办事器扩展静态信息
2.11.2.参数
type 静态信息范例,有用值包罗{reset, malloc, maps, cachedump, slabs, items, sizes},遵照必然法则和谈这个可选参数是为了便利开辟职员检察分歧种别的信息而输入的题目slabid 用于按指定范例结合设置 cache 堆为有用的片到堆中。缓存堆被被号令绑定到办事器上并被严酷的用于调试用途
limit 用于按指定范例结合设置 cache 堆为输入的数字所限定的巨细到堆,默认值为 100
2.11.3.返回值
返回一个 由办事器扩展静态信息二维数组,失败时返回 FALSE2.11.4.典范
$memcache_obj = new Memcache; $memcache_obj->addServer('memcache_host', 11211); $memcache_obj->addServer('failed_host', 11211); $stats = $memcache_obj->getExtendedStats(); print_r($stats); ?> 输出成果 Array( [memcache_host:11211] => Array( [pid] => 3756 [uptime] => 603011 [time] => 1133810435 [version] => 1.1.12 [rusage_user] => 0.451931 [rusage_system] => 0.634903 [curr_items] => 2483 [total_items] => 3079 [bytes] => 2718136 [curr_connections] => 2 [total_connections] => 807 [connection_structures] => 13 [cmd_get] => 9748 [cmd_set] => 3096 [get_hits] => 5976 [get_misses] => 3772 [bytes_read] => 3448968 [bytes_written] => 2318883 [limit_maxbytes] => 33554432 ), [failed_host:11211] => )
2.12.Memcache::getStats
2.12.1. 申明
array Memcache::getStats ([ string $type [, int $slabid [, int $limit ]]] )获取末了添加办事器静态信息
2.12.2.参数
type 静态信息范例,有用值包罗{reset, malloc, maps, cachedump, slabs, items, sizes},遵照必然法则和谈这个可选参数是为了便利开辟职员检察分歧种别的信息而输入的题目slabid 用于按指定范例结合设置 cache 堆为有用的片到堆中。缓存堆被被号令绑定到办事器上并被严酷的用于调试用途
limit 用于按指定范例结合设置 cache 堆为输入的数字所限定的巨细到堆,默认值为 100
2.12.3.返回值
返回一个 办事器静态信息数组,失败时返回 FALSE2.13.Memcache::getServerStatus
2.13.1. 申明
int Memcache::getServerStatus ( string $host [, int $port ] )经 由过程输入的 host 及 port 来获取响应的办事器信息
2.13.2.参数
host 办事器域名或 IPport 端标语,默以为 11211
2.13.3.返回值
返回办事器状况,0 为失败,其他环境返回非 0 数字2.13.4. 典范
/* OO API */ $memcache = new Memcache; $memcache->addServer('memcache_host', 11211); echo $memcache->getServerStatus('memcache_host', 11211); /* procedural API */ $memcache = memcache_connect('memcache_host', 11211); echo memcache_get_server_status($memcache, 'memcache_host', 11211); ?>
2.14.Memcache::getVersion
2.14.1. 申明
string Memcache::getVersion ( void )获取办事器的版本号信息
2.14.2. 返回值
乐成返回办事器的版本号字符串,失败返回 FALSE2.14.3.典范
/* OO API */ $memcache = new Memcache; $memcache->connect('memcache_host', 11211); echo $memcache->getVersion(); /* procedural API */ $memcache = memcache_connect('memcache_host', 11211); echo memcache_get_version($memcache); ?>
2.15.Memcache::setCompressThreshold
bool Memcache::setCompressThreshold ( int $threshold [, float $min_savings ] )设置压缩极限
2.15.2.参数
threshold 设置节制主动压缩的变量长度的最小值min_saving 指定的最低压缩比率,值必需介于 0 - 1 之间,默以为 0.2 代表 20% 的压缩比率
2.15.3.返回值
乐 成返回 TRUE,失败返回 FALSE。2.15.4.典范
/* OO API */ $memcache_obj = new Memcache; $memcache_obj->addServer('memcache_host', 11211); $memcache_obj->setCompressThreshold(20000, 0.2); /* procedural API */ $memcache_obj = memcache_connect('memcache_host', 11211); memcache_set_compress_threshold($memcache_obj, 20000, 0.2); ?>
2.16.Memcache::setServerParams
2.16.1. 申明
bool Memcache::setServerParams ( string $host [, int $port [, int$timeout [, int $retry_interval [, bool $status [, callback
$failure_callback ]]]]] )
Memcache version 2.1.0 后增添的函数,运行时设置办事器参数
2.16.2. 参数
host 办事器域名或 IPport 端标语,默以为 11211
timeout 超时毗连失效的秒数,点窜默认值 1 时要三思,有大概落空全部缓存方面的上风导致毗连变得很慢
retry_interval 办事器毗连失败时的重试频率,默认是 15 秒一次,若是设置为 -1
将克制主动重试,当扩展中加载了 dynamically via dl()
时,无论本参数仍是常毗连设置参数城市失效。每一个失败的办事器在失效前都有独自的保存期,选择后端恳求时会被跳过而不平务于恳求。一个过时的毗连将乐成
的从头毗连大概被标识表记标帜为失败的毗连期待下一次重试。这种结果便是说每一个 web server
的子历程在办事于页面时的重试毗连都跟他们本身的重试频率有关。
status 节制办事器是否被标识表记标帜为 online, 设置这个参数为 FALSE 并设置
retry_interval 为 -1
可以使毗连失败的办事器被放到一个形貌不相应恳求的办事器池子中,对这个办事器的恳求将失败,接管设置为失败办事器的设置,默认参数为
TRUE,代表该办事器可以被界说为 online。
failure_callback 失败时的回调函数,函数的两个参数为失败办事器的 hostname 和 port
2.16.3.返回值
乐成返回 TRUE,失败返回 FALSE。2.16.4.典范
function _callback_memcache_failure($host, $port) { print "memcache '$host:$port' failed"; } /* OO API */ $memcache = new Memcache; // Add the server in offline mode $memcache->addServer('memcache_host', 11211, FALSE, 1, 1, -1, FALSE); // Bring the server back online $memcache->setServerParams('memcache_host', 11211, 1, 15, TRUE, '_callback_memcache_failure'); /* procedural API */ $memcache_obj = memcache_connect('memcache_host', 11211); memcache_set_server_params($memcache_obj, 'memcache_host', 11211, 1, 15, TRUE, '_callback_memcache_failure'); ?>
2.17.Memcache::increment
2.17.1. 申明
int Memcache::increment ( string $key [, int $value ] )给 指定 key 的缓存变量一个增值,若是该变量不是数字时不会被转化为数字,这个增值将会加到该变量原有的数字之上,变量不存在不会新增变量,对付压缩存储的变量不要利 用本函数由于响应的取值方式会失败。
2.17.2.参数
key 缓存值的键var 值,整型将直接存储,其他范例将被序列化存储
2.17.3.返回值
乐成返回新的变量值,失败返回 FALSE。2.17.4. 典范
/* procedural API */ $memcache_obj = memcache_connect('memcache_host', 11211); /* increment counter by 2 */ $current_value = memcache_increment($memcache_obj, 'counter', 2); /* OO API */ $memcache_obj = new Memcache; $memcache_obj->connect('memcache_host', 11211); /* increment counter by 3 */ $current_value = $memcache_obj->increment('counter', 3); ?>
2.18.Memcache::decrement
2.18.2. 申明
int Memcache::decrement ( string $key [, int $value ] )给 指定 key 的缓存变量一个递减值,与 increment 操纵近似,将在原有变量根本上减去这个值,该项的值将会在转化为数字后减去,新项的值不会小于 0,对付压缩存储的变量不要利用本函数由于响应的取值方式会失败。
2.18.2.参数
key 缓存值的键var 值,整型将直接存储,其他范例将被序列化存储
2.18.3.返回值
乐成返回新的变量值,失败返回 FALSE。2.18.4. 典范
/* procedural API */ $memcache_obj = memcache_connect('memcache_host', 11211); /* decrement item by 2 */ $new_value = memcache_decrement($memcache_obj, 'test_item', 2); /* OO API */ $memcache_obj = new Memcache; $memcache_obj->connect('memcache_host', 11211); /* decrement item by 3 */ $new_value = $memcache_obj->decrement('test_item', 3); ?>
2.19.memcache_debug
2.19.1. 申明
bool memcache_debug ( bool $on_off )设置 memcache 的调试器是否开启,值为 TRUE 或 FALSE。 受影响于 php 安置时是否利用了 --enable-debug 选项,若是利用了该函数才会返回 TRUE,其他环境将始终返回 FALSE。
2.19.2.参数
on_off 设置调试模式是否开启,TRUE 为开启,FALSE 为封闭2.19.3.返回值
php 安置时若是使利用了 --enable-debug 选项返回 TRUE,不然将返回 FALSE。from:http://www.doudou8.net/post/cid~1501
相关文章推荐
- PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
- php中使用memcached来存储session
- 【PHP】在php文件上传时需要注意的几个细节
- Server2008使用IIS配置PHP站点,几个要注意的地方。
- PHP在使用正则表达式验证,防注入的时候要注意一下的细节
- php使用memcache来储存session需要注意的地方
- PHP使用静态方法的几个注意事项
- PHP常量使用的几个需要注意的地方
- PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
- c#中使用SESSION需要注意的几个问题
- apache+PHP使用memcached储存session信息
- PHP使用静态方法的几个注意事项
- c#中使用SESSION需要注意的几个问题
- 使用NPO问题进行规约应注意的几个细节
- php中session_id的使用注意
- php基础留言板的注意细节(使用txt做简单的数据库)。
- PHP使用memcached储存session信息
- 使用PHP程序header location 进行跳转的注意的一个细节!
- 在php中使用mysql注意的几个问题
- 在PHP中使用memcached存取Session数据