public function mc() { $mc = new MyMemcache(); $mc->get('abc'); $mc->set('abc', '1'); $mc->increment('abc', 3); $mc->decrement('abc'); }
public static function set($key_footer = null, $data = array()) { if (self::$_redis) { //开启了redis缓存 return MyRedis::set($key_footer, $data); } elseif (self::$_memcache) { //开启了memcache缓存 return MyMemcache::set($key_footer, $data); } 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; }
/** * 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)); } }
if (isset($key)) { $key .= ",`" . $v . "`"; $value .= ",'" . mysql_real_escape_string($_GET[$v]) . "'"; } else { $key = "`" . $v . "`"; $value = "'" . mysql_real_escape_string($_GET[$v]) . "'"; } } $mysql->replace("foot", "{$key}", "{$value}"); //插入数据 unset($value); unset($key); } $_GET['footId'] = mysql_insert_id(); //echo $_GET['footId']; $myMemcache->set("like" . $_GET['footId'], $_GET['like']); if (isset($_GET['url'])) { $myMemcache->set($_GET['url'], $_GET['footId']); } $_GET['timestamp'] = time(); $footprintId = $myMemcache->get($_GET['userId'] . "foot:" . $_GET['footId']); $FootPrintList = array('userId', 'footId', 'initiative', 'time', 'timestamp'); foreach ($FootPrintList as $k => $v) { if (isset($key)) { $key .= ",`" . $v . "`"; $value .= ",'" . mysql_real_escape_string($_GET[$v]) . "'"; } else { $key = "`" . $v . "`"; $value = "'" . mysql_real_escape_string($_GET[$v]) . "'"; } }
} if (isset($key)) { $key .= ",`" . $v . "`"; $value .= ",'" . mysql_real_escape_string($_POST[$v]) . "'"; } else { $key = "`" . $v . "`"; $value = "'" . mysql_real_escape_string($_POST[$v]) . "'"; } } $mysql = new Mysql(); //连接数据库 $userName = $_POST['userName']; $result = $mysql->select("*", 'user', '`username`', "'{$userName}'"); if (!$result) { $mysql->replace("user", "{$key}", "{$value}"); $userId = mysql_insert_id(); $mysql->close(); } else { $res = ['ok' => 0, 'error' => 'username existed']; echo json_encode($res); die; } $myMemcache = new MyMemcache(); $expireTime = 7 * 24 * 3600; $token = md5(uniqid(rand(), TRUE)); $myMemcache->set("u" . $userId, $token, $expireTime); $myMemcache->set($token, $userId, $expireTime); $myMemcache->close(); $user = [userId => $userId, token => $token, expireTime => $expireTime]; $res = [ok => 1, data => $user]; echo json_encode($res);
$db = new BaseModelDB(); $rs = $db->getData("SELECT * FROM `test`", 10); exit; $starttime = microtime(true); $mcd = new MyMemcached(); $a = array(); for ($i = 0; $i < 100; $i++) { $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);
//打印出所有的 错误信息 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; }
/** * Created by PhpStorm. * User: shaoting * Date: 15/7/25 * Time: 下午2:33 */ include "../memcache.php"; $myMemcache = new MyMemcache(); $expireTime = 7 * 24 * 3600; $userId = time() / 10 % 10000; $token = $myMemcache->get("u" . $userId); while ($token) { $userId = $userId * 2; $token = $myMemcache->get($userId); } $token = md5(uniqid(rand(), TRUE)); $myMemcache->set("u" . $userId, $token); $myMemcache->set($token, $userId); $myMemcache->close(); $user = [userId => $userId, token => $token]; $res = [ok => 1, data => $user]; echo json_encode($res); include '../Mysql.php'; $mysql = new Mysql(); //连接数据库 $userName = "******" . $userId; $mysql->insert("user", "`userId`,`userName`", "'{$userId}','{$userName}'"); //插入数据 $mysql->close(); //关闭连接
<?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'));