1.简介
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.以下是配置项的简要解释
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.说明
2.1.2.参数
2.1.3.返回值
2.1.4.范例
<?php
/* 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.说明
2.2.2.参数
2.2.3.返回值
2.2.4.范例
<?php
/* 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.说明
2.3.2.返回值
2.3.3.范例
<?php
/* 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.说明
2.4.2.参数
2.4.3.返回值
2.4.4.范例
<?php
$mem = new Memcache;
$is_add = $mem->addServer('localhost', 11211, true, 1, 1, 15, true); // retrt_interval=15
$is_set = $mem->set('key1', '×××');
?>
<?php
$mem = new Memcache;
$is_add = $mem->addServer('localhost', 11211, true, 1, 1, -1, false); // retrt_interval=-1, status=false
$is_set = $mem->set('key1', '×××');
?>
2.4.4.3.status参数的测试
2.5.Memcache::add
2.5.1.说明
添加一个要缓存的数据如果作为这个缓存的数据的键在服务器上还不存在的情况下,
2.5.2.参数
2.5.3.返回值
2.5.4.范例
<?php
$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.说明
2.6.2.参数
2.6.3.返回值
2.6.4.范例
<?php
$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.说明
设置一个指定 key 的缓存变量内容
2.7.2.参数
2.7.3.返回值
2.7.4.范例
<?php
/* 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');
?>
<?php
/* 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.说明
2.8.2.参数
2.8.3.返回值
2.8.4.范例
<?php
/* 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.说明
2.9.2.参数
2.9.3.返回值
<?php
/* 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.说明
2.10.2.返回值
2.10.3.范例
<?php
/* 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.说明
2.11.2.参数
2.11.3.返回值
2.11.4.范例
<?php
$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.说明
2.12.2.参数
2.12.3.返回值
2.13.Memcache::getServerStatus
2.13.1.说明
2.13.2.参数
2.13.3.返回值
2.13.4.范例
<?php
/* 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.说明
2.14.2.返回值
2.14.3.范例
<?php
/* 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
2.15.2.参数
2.15.3.返回值
2.15.4.范例
<?php
/* 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.说明
2.16.2.参数
2.16.3.返回值
2.16.4.范例
<?php
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.说明
2.17.2.参数
2.17.3.返回值
2.17.4.范例
<?php
/* 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.说明
2.18.2.参数
2.18.3.返回值
2.18.4.范例
<?php
/* 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);
?>