memcached连接及使用实例

来源:互联网 发布:pc装机软件 编辑:程序博客网 时间:2024/06/03 06:32

    在电脑上转上memcached服务器后进行了写小尝试,大多书都是参考的PHP手册上的,写上来,也方便自己以后方便查看。

<?php$memcache = new Memcache;//打开一个memcached服务端连接$memcache->connect('127.0.0.1', 11211);//用于获取一个服务器的在线/离线状态echo $memcache->getServerStatus('127.0.0.1', 11211)."<br/>";  //返回3,非0表示在线//获取服务器统计信息var_dump($memcache->getStats());/*取得如下数据 * array (size=46)  'pid' => string '8936' (length=4)  'uptime' => string '11061' (length=5)  'time' => string '1398317257' (length=10)  'version' => string '1.4.13' (length=6)  'libevent' => string '2.0.21-stable' (length=13)  'pointer_size' => string '64' (length=2)  'curr_connections' => string '10' (length=2)  'total_connections' => string '106' (length=3)  'connection_structures' => string '11' (length=2)  'reserved_fds' => string '20' (length=2)  'cmd_get' => string '72' (length=2)  'cmd_set' => string '174' (length=3)  'cmd_flush' => string '2' (length=1)  'cmd_touch' => string '0' (length=1)  'get_hits' => string '68' (length=2)  'get_misses' => string '4' (length=1)  'delete_misses' => string '0' (length=1)  'delete_hits' => string '2' (length=1)  'incr_misses' => string '0' (length=1)  'incr_hits' => string '0' (length=1)  'decr_misses' => string '1' (length=1)  'decr_hits' => string '52' (length=2)  'cas_misses' => string '0' (length=1)  'cas_hits' => string '0' (length=1)  'cas_badval' => string '0' (length=1)  'touch_hits' => string '0' (length=1)  'touch_misses' => string '0' (length=1)  'auth_cmds' => string '0' (length=1)  'auth_errors' => string '0' (length=1)  'bytes_read' => string '8443' (length=4)  'bytes_written' => string '7753' (length=4)  'limit_maxbytes' => string '67108864' (length=8)  'accepting_conns' => string '1' (length=1)  'listen_disabled_num' => string '0' (length=1)  'threads' => string '4' (length=1)  'conn_yields' => string '0' (length=1)  'hash_power_level' => string '16' (length=2)  'hash_bytes' => string '524288' (length=6)  'hash_is_expanding' => string '0' (length=1)  'expired_unfetched' => string '14' (length=2)  'evicted_unfetched' => string '0' (length=1)  'bytes' => string '249' (length=3)  'curr_items' => string '3' (length=1)  'total_items' => string '113' (length=3)  'evictions' => string '0' (length=1)  'reclaimed' => string '45' (length=2) *  * *///返回服务器版本信息echo $memcache->getVersion()."<br/>"; //返回1.4.13//增加一个条目到缓存服务器add和set都可以$memcache->add('var_key', 'test variable', FALSE, 30);$memcache->set('var_key', 'test variable', FALSE, 30);$data = $memcache->get('var_key');echo $data."<br/>";//减小元素的值$memcache->add('test_item', 34, FALSE, 30);  //值需为int类型$data = $memcache->decrement('test_item', 3);echo $data."<br/>";//增加元素值$data = $memcache->increment('counter', 3);echo $data;//从服务端删除一个元素$memcache->add('test_item_delete', "delete", FALSE, 30); $data = $memcache->delete('test_item_delete', 10);echo $memcache->get('test_item_delete');//清洗(删除)已经存储的所有的元素$memcache->flush();$data = $memcache->get('var_key');  //无法取得数据,已经失效echo $data."<br/>";//缓存服务器池中所有服务器统计信息$stats = $memcache->getExtendedStats();  var_dump($stats);  //返回'127.0.0.1:11211' => boolean false,因为memcache版本较低//替换已经存在的元素的值$data = $memcache->replace("test_item", "some variable", false, 30);echo $data;//运行时修改服务器参数和状态// 增加一台离线服务器$memcache->addServer('memcache_host', 11211, false, 1, 1, -1, false);// 使该服务器变为在线状态$memcache->setServerParams('memcache_host', 11211, 1, 15, true, '_callback_memcache_failure');/*参数分别表示 * host服务端监听地址。port服务端监听端口。timeout连接持续(超时)时间(单位秒),默认值1秒,修改此值之前请三思,过长的连接持续时间可能会导致失去所有的缓存优势。retry_interval服务器连接失败时重试的间隔时间,默认值15秒。如果此参数设置为-1表示不重试。此参数和persistent参数在扩展以 dl()函数动态加载的时候无效。status控制此服务器是否可以被标记为在线状态。设置此参数值为FALSE并且retry_interval参数 设置为-1时允许将失败的服务器保留在一个池中以免影响key的分配算法。对于这个服务器的请求会进行故障转移或者立即失败, 这受限于memcache.allow_failover参数的设置。该参数默认TRUE,表明允许进行故障转移。failure_callback允许用户指定一个运行时发生错误后的回调函数。回调函数会在故障转移之前运行。回调函数会接受到两个参数,分别是失败主机的 主机名和端口号。 *///以上所有用法均可参考http://www.php.net/manual/zh/book.memcache.php


0 0