public function mc()
 {
     $mc = new MyMemcache();
     $mc->get('abc');
     $mc->set('abc', '1');
     $mc->increment('abc', 3);
     $mc->decrement('abc');
 }
Exemple #2
0
 public static function get($key_footer = null)
 {
     if (self::$_redis) {
         //开启了redis缓存
         return MyRedis::get($key_footer);
     } elseif (self::$_memcache) {
         //开启了memcache缓存
         return MyMemcache::get($key_footer);
     } else {
         return false;
     }
 }
Exemple #3
0
 public function test_mem()
 {
     $mem = MyMemcache::connect();
     if ($mem) {
         var_dump(MyMemcache::get('name'));
         var_dump(MyMemcache::set('news', 'sumshine'));
         var_dump(MyMemcache::get('news'));
         var_dump(MyMemcache::del('news'));
         var_dump(MyMemcache::get('news'));
         var_dump(MyMemcache::getAllKeysValues());
     } else {
         echo 'not have connect memcache';
     }
 }
Exemple #4
0
 /**
  * 请求http地址前先查MC是否缓存了结果
  * @param string $req 请求url,必传参数
  * @param int $expire MC失效时间,默认10分钟。
  * @param array $header 默认为空。示例$header = array('Host: www.dagger.com');
  * @param int $timeout 超时设定,默认为5秒
  * @param string $cookie 默认为空。示例 $cookie="fruit=apple; colour=red";
  * @param int $redo 请求失败后重试次数,默认为0
  * @param int $maxredirect 如果遇上跳转,跳转几次后返回。默认为2
  * @return string
  * @author 
  */
 public static function getWithMC($req, $expire = '', $header, $timeout = BaseModelHttp::DAGGER_HTTP_TIMEOUT, $cookie = '', $redo = 1, $maxredirect = BaseModelHttp::DAGGER_HTTP_MAXREDIRECT)
 {
     self::debugMCInfo();
     $mc = new MyMemcache();
     $mcResultKey = __FUNCTION__ . '|' . md5(serialize(func_get_args()));
     $result = $mc->get($mcResultKey);
     if (empty($result)) {
         $result = self::get($req, $header, $timeout, $cookie, $redo, $maxredirect);
         $expire = intval($expire);
         if (empty($expire)) {
             $expire = Http::$MC_EXPIRE_TIME;
         }
         $mc->set($mcResultKey, $result, $expire);
     }
     return $result;
 }
Exemple #5
0
function getUserId()
{
    if (isset($_POST['token'])) {
        $token = $_POST['token'];
    } else {
        $token = $_GET['token'];
    }
    $memcache = new MyMemcache();
    $userId = $memcache->get($token);
    $memcache->close();
    if (!$userId) {
        $res = ['ok' => 0, 'error' => 'token not valid'];
        echo json_encode($res);
        die;
    }
    return $userId;
}
 /**
  * mtiTheading 多线程单例,双重锁
  * 
  * @Access public
  * @Return void
  */
 public static function mtiTheading($tabName, $UserModel)
 {
     if (empty($UserModel)) {
         if (empty(self::$SingTon)) {
             self::$SingTon = new Model();
         }
         $singTon = serialize(self::$SingTon);
         $model = MyMemcache::get('model');
         if (empty($model)) {
             MyMemcache::set('model', $singTon);
         }
         return unserialize(MyMemcache::get('model'));
     } else {
         if (empty(self::$userModel[$tabName])) {
             self::$userModel[$tabName] = new $UserModel();
         }
         $singTon = serialize(self::$userModel[$tabName]);
         $model = MyMemcache::get($tabName);
         if (empty($model)) {
             MyMemcache::set($tabName, $singTon);
         }
         return unserialize(MyMemcache::get($tabName));
     }
 }
Exemple #7
0
$KeyList = array('userId', 'footprintId');
foreach ($KeyList as $k => $v) {
    if (!isset($_GET[$v])) {
        $res = ['ok' => 0, 'error' => "param invalid "];
        echo json_encode($res);
        die;
    }
}
$mysql = new Mysql();
$result = $mysql->select("*", "footprint", "`footId`", "'{$_GET['footprintId']}'");
if ($result) {
    if ($result['userId'] == $_GET['userId']) {
        $myMemcache = new MyMemcache();
        $footprintId = $result['id'];
        $removeFootprint = "delete from footprint where id={$footprintId}";
        //echo $removeFootprint;
        $mysql->query($removeFootprint);
        $myMemcache->delete($_GET['userId'] . "foot" . $result['footId']);
        if ($myMemcache->get("like" . $result['footId']) && $myMemcache->get("like" . $result['footId']) == 1) {
            //$removeFoot="delete from foot where id={$result['footId']}";
            //$mysql->query($removeFoot);
        }
        echo json_encode(['ok' => 1]);
    } else {
        echo json_encode(['ok' => 0, 'error' => "no permission"]);
        die;
    }
} else {
    echo json_encode([ok => 0, error => "footId not exsit"]);
}
$mysql->close();
Exemple #8
0
//$_GET['time']=21324;
if (!isset($_GET['footId'])) {
    $KeyList = array('userId', 'url', 'title', 'time');
    foreach ($KeyList as $k => $v) {
        if (!isset($_GET[$v])) {
            $res = ['ok' => 0, 'error' => "param invalid "];
            echo json_encode($res);
            return;
        }
    }
}
$mysql = new Mysql();
//连接数据库
$myMemcache = new MyMemcache();
if (isset($_GET['footId'])) {
    $_GET['like'] = $myMemcache->get("like" . $_GET['footId']) ? $myMemcache->get("like" . $_GET['footId']) + 1 : 1;
    $_GET['id'] = $_GET['footId'];
    $FootList = array('id', 'like');
    $mysql->update("foot", "like", "{$_GET['like']}", "id", "{$_GET['id']}");
} else {
    $memValue = $myMemcache->get($_GET['url']);
    if ($memValue) {
        $_GET['id'] = $memValue;
        $footprintId = $myMemcache->get($_GET['userId'] . "foot:" . $_GET['id']);
        if ($footprintId) {
            echo json_encode(['ok' => 1, 'data' => [id => $footprintId]]);
            die;
        }
        $_GET['like'] = $myMemcache->get("like" . $_GET['id']) ? $myMemcache->get("like" . $_GET['id']) + 1 : 1;
        $FootList = array('url', 'title', 'id', 'like');
    } else {
Exemple #9
0
include "../Mysql.php";
header("Content-type: application/json; charset=utf-8");
$UserList = array('BindUserId', 'userName', 'password');
foreach ($UserList as $k => $v) {
    if (isset($_GET[$v])) {
        $_POST[$v] = $_GET[$v];
    }
}
// todo BindUserId不存在的情况,已被人绑定的情况
$_POST['userId'] = $_POST['BindUserId'];
$userName = $_POST['userName'];
$userId = $_POST['BindUserId'];
if (!isset($userId)) {
    $myMemcache = new MyMemcache();
    $userId = time();
    $token = $myMemcache->get("u" . $userId);
    $myMemcache->close();
}
$password = $_POST['password'];
$UserList = array('userId', 'userName', 'password');
foreach ($UserList as $k => $v) {
    if (!isset($_POST[$v]) && $v != 'userId') {
        $error = "param invalid " . $v;
        $res = ['ok' => 0, 'error' => $error];
        echo json_encode($res);
        die;
    }
    if (isset($key)) {
        $key .= ",`" . $v . "`";
        $value .= ",'" . mysql_real_escape_string($_POST[$v]) . "'";
    } else {
Exemple #10
0
    $a['key' . $i] = $i;
}
$mcd->setMulti($a, 10);
$t1 = microtime(true) - $starttime;
$starttime = microtime(true);
$mc = new MyMemcache();
for ($i = 0; $i < 100; $i++) {
    $a['key' . $i] = $i;
    $mc->set('key' . $i, $i, 10);
}
$t2 = microtime(true) - $starttime;
var_dump($t1, $t2, $t2 - $t1);
exit;
var_dump($mc->get('test'));
var_dump($mcd->setMulti('test', 1, 5));
var_dump($mc->getMulti(array('test')));
sleep(5);
var_dump($mc->get('test'));
var_dump($mc->getMulti(array('test')));
exit;
Log::sendLog(100, "[{$absDataPath}]看了还看数据推送异常。联系zhixiong1@,6883,15810834486。");
exit;
echo 1;
sleep(30);
$mc = new MyMemcache();
var_dump($mc->add("aa", 1, 10));
var_dump($mc->add("aa", 1, 10));
var_dump($mc->get("aa"));
var_dump($mc->delete("aa"));
var_dump($mc->get("aa"));
var_dump($mc->add("aa", 1, 10));
Exemple #11
0
//打印出所有的 错误信息
ini_set('error_log', dirname(__FILE__) . '/error_log.txt');
include "../Visitor.php";
$userId = getUserId();
$mysql = new Mysql();
//$regular=new Regular(null);
//$regular->host="http://www.google.com/";
//$regular->threshold=100;
//$regulars[]=$regular;
//
//$regular=new Regular(null);
//$regular->host="http://www.jd.com/";
//$regular->threshold=10000;
//$regulars[]=$regular;
//var_dump($_POST['data']);
$regulars = json_decode($_POST['data']);
$myMemcache = new MyMemcache();
foreach ($regulars as $item) {
    $key = $item->threshold . "_" . $item->host;
    if ($myMemcache->get($key)) {
        $id = $myMemcache->get($key);
    } else {
        $mysql->insert("regular", "`host`,`threshold`", "'{$item->host}','{$item->threshold}'");
        $id = mysql_insert_id();
        $myMemcache->set($key, $id);
    }
    $time = time();
    $mysql->replace("user_regular", "`user_id`,`regular_id`,`time`", "'{$userId}','{$id}','{$time}'");
}
$data = json_encode($regulars);
echo $data;
Exemple #12
0
 public function mem()
 {
     $mem = MyMemcache::connect();
     if ($mem) {
         var_dump(MyMemcache::get('memcache'));
         var_dump(MyMemcache::set('memcache', 'mymemcache'));
         var_dump(MyMemcache::get('memcache'));
         var_dump(MyMemcache::del('memcache'));
         var_dump(MyMemcache::get('memcache'));
         var_dump(MyMemcache::getAllKeysValues());
     } else {
         echo 'not have connect memcache';
     }
 }
Exemple #13
0
 /**
  * 返回结果集的第一条记录的第一个字段。
  * 支持MC的数据查询,只查询从库。因为查询主库不应该读取memcache数据
  */
 public function getFirstWithMC($sql, $data = '', $expire = '')
 {
     $expire = intval($expire);
     if (empty($expire)) {
         $expire = $this->MC_EXPIRE_TIME;
     }
     $mc = new MyMemcache();
     $args = func_get_args();
     $mcResultKey = __FUNCTION__ . '|' . md5(implode('', array(serialize($args), $this->DBName)));
     //结果的mckey
     $result = $mc->get($mcResultKey);
     $needQueryDB = $result === false;
     if ($needQueryDB) {
         $result = $this->getFirst($sql, $data, 'slave');
         $result && $mc->set($mcResultKey, $result, $expire);
     } else {
     }
     return $result;
 }
Exemple #14
0
<?php

include 'global.php';
$rs = MyRedis::getInstance();
$mc = new MyMemcache();
$mc->set('a', array(1, 2, 3));
$rs->set('a', array(1, 2, 3));
print_r($rs->get('a'));
print_r($mc->get('a'));