public function mc() { $mc = new MyMemcache(); $mc->get('abc'); $mc->set('abc', '1'); $mc->increment('abc', 3); $mc->decrement('abc'); }
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; } }
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'; } }
/** * 请求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; }
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)); } }
$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();
//$_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 {
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 {
$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));
//打印出所有的 错误信息 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;
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'; } }
/** * 返回结果集的第一条记录的第一个字段。 * 支持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; }
<?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'));