php memcache 源码,一个简单的memcache类

一个简单的memcache类<?php

class cache_memcache {

private $_memcached;

protected $_memcached_conf = array(

'default_host' => '127.0.0.1',

'default_port' => 11211,

'default_weight' => 1,

);

public function __construct() {

$this->_memcached = new Memcache($this->_memcached_conf);

$this->_memcached->addserver('127.0.0.1', '11211');

}

// Save data into cache

public function save($key, $data, $ttl = 3600) {

if (get_class($this->_memcached) == 'Memcached') {

return $this->_memcached->set($key, array($data, time(), $ttl), $ttl);

} else if (get_class($this->_memcached) == 'Memcache') {

return $this->_memcached->set($key, array($data, time(), $ttl), 0, $ttl);

}

return false;

}

// Fetch data from cache

public function get($key) {

$data = $this->_memcached->get($key);

return (is_array($data)) ? $data[0] : false;

}

// Detele data from cache

public function delete($key) {

return $this->_memcached->delete($key);

}

//

// clean will marks all the items as expired,

so occupied memory will be overwritten by new items.

public function clean() {

return $this->_memcached->flush();

}

public function ServerStatus() {

$server_status = $this->_memcached->getstats();

echo "

echo "

Memcache Server version: " . $server_status["version"] . "";

echo "

Process id of this server process " . $server_status["pid"] . "";

echo "

Number of seconds this server has been running " . $server_status["uptime"] . "";

echo "

Accumulated user time for this process " . $server_status["rusage_user"] . " seconds";

echo "

Accumulated system time for this process " . $server_status["rusage_system"] . " seconds";

echo "

Total number of items stored by this server ever since it started" . $server_status["total_items"] . "";

echo "

Number of open connections " . $server_status["curr_connections"] . "";

echo "

Total number of connections opened since the server started running " . $server_status["total_connections"] . "";

echo "

Number of connection structures allocated by the server " . $server_status["connection_structures"] . "";

echo "

Cumulative number of retrieval requests " . $server_status["cmd_get"] . "";

echo "

Cumulative number of storage requests " . $server_status["cmd_set"] . "";

$percCacheHit = ((real) $server_status["get_hits"] / (real) $server_status["cmd_get"] * 100);

$percCacheHit = round($percCacheHit, 3);

$percCacheMiss = 100 - $percCacheHit;

echo "

Number of keys that have been requested and found present " . $server_status["get_hits"] . " ($percCacheHit%)";

echo "

Number of items that have been requested and not found " . $server_status["get_misses"] . "($percCacheMiss%)";

$MBRead = (real) $server_status["bytes_read"] / (1024 * 1024);

echo "

Total number of bytes read by this server from network " . $MBRead . " Mega Bytes";

$MBWrite = (real) $server_status["bytes_written"] / (1024 * 1024);

echo "

Total number of bytes sent by this server to network " . $MBWrite . " Mega Bytes";

$MBSize = (real) $server_status["limit_maxbytes"] / (1024 * 1024);

echo "

Number of bytes this server is allowed to use for storage." . $MBSize . " Mega Bytes";

echo "

Number of valid items removed from cache to free memory for new items." . $server_status["evictions"] . "";

echo "

";

}

}

?>

2. 操作实例require_once'memcache2.php';

$getData = new cache_memcache ();

$res = $getData->get("Shibly");

if ($res) {

echo $res;

} else {

echo "No data to display. The cache may be destroyed";

}

$srv_stat = new cache_memcache();

$srv_stat->ServerStatus();

require_once('memcache2.php');

$setData = new cache_memcache();

$data = $setData->save("Shibly","Hello there ! you've stored me in a memcached server !");

if($data)

{

echo "You've successfully stored data in the memcached server.

Please Run the example_get_cache.php file to retrive your data";

}

else{

echo "There is something wrong with your caching server";

}

以上就是一个简单的memcache类的内容,更多相关内容请关注PHP中文网(www.php.cn)!

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值