在windows使用php扩展MongoDB应用

 MongoDB:http://www.mongodb.org/downloads

   php的Mongodb的扩展:https://github.com/mongodb/mongo-php-driver/downloads

 前提条件:PHP的环境已搭建好!

<?php
/**
* @func Mongo 缓存
* @author midoks
* @link midoks.cachecha.com
*/
class MongoCache{
public $cfg = array();

public $link;//连接资源
public $collection;//文档资源

public function __construct(){
$this->link = new Mongo();
//选择数据库,没有会自动创建
$this->link->selectDB('wpdbcache');
//文档资源
$this->collection = $this->link->selectCollection('wpdbcache','wpdbcache.baz');
//var_dump($this);
}

//解构函数
public function __destruct(){
$this->link->close();
}

/**
* @func 向MongoDB服务器中,写入值
* @param $key key值
* @param $value value值
* @return 返回
*/
public function write($key, $value){
//查找是否存在
$data = $this->collection->findOne(array('id'=>$key));
//加入添加时间
$value = array_merge($value, array('time_insert_to_mongodb'=>time()));
//var_dump($value);
$value = base64_encode(serialize($value));
//var_dump($data);
$bool = false;
if(!$data){
$bool = $this->collection->insert(array('id'=>$key, 'value'=>$value));
//var_dump($bool);
}else{//存在,就更新操作
$bool = $this->collection->update(array('id'=>$key), array('$set'=>array('value'=>$value)));
//var_dump($bool);
}


}

/**
* @func 向Mongo服务获取值
* @param $key key值
*/
public function read($key){
return false;
$data = $this->collection->findOne(array('id'=>$key));
//$num = $this->collection->count();//总数
if(!empty($data['value'])){
//var_dump(unserialize(base64_decode($data['value'])));
$data = unserialize(base64_decode($data['value']));
if(($data['time_insert_to_mongodb'] + $this->cfg['timeout']) > time()){
//var_dump($data);
return $data;
}else{
return false;
}
}
return false;
}

/**
* @func 在Mongo服务器中删除一个元素
*/
public function delete($key){
$this->link->remove(array($key));
}

/**
* @func 清空Mongo中的所有数据
*/
public function flush(){
$this->link->remove();
}

//清空过期数据
public function flush_expire(){
//会自动销毁
}
}
?>


上一篇: MongoDB数据表基本操作
下一篇: 一条巨型食人鱼

点击获得Trackback地址

发表评论

内 容: