博客原文地址https://xgs888.top/post/view?id=63
先说一下之前的需求;
由于之前是一直用的直接读取数据库;每到周六周日服务器就会挂掉,英文访问量很大;对sql各种优化效果也不是很好;后来就采用了Memcache缓存,缓存之存储用户的手机号和Mac地址,
<?php
include 'dbo.php';
$memcache = new Memcache;
@$memcache->connect('localhost', 11211) or die ("Could not connect");
$mac = $_GET['mac'];
$phone = $_GET['phone'];
if(!$memcache->get("$mac")){
//由于是认证一次之后就是永久的老用户;所以不设置有效期了
$memcache->set($mac,$phone);
//也可以写一下数据库
insertdata($mac,$phone);
//如果是redis的话可以直接写到list里面然后定时任务去pop这个list
}else{
$resArr = $memcache->get("$mac");
$dev_code = $resArr['dev_code'];
$shopcode = $resArr['ccode'];
$arr = array($shopcode, $dev_code);
}
//写数据库的方法
function insertdata($mac,$phone){
$dbo = new mysqldb();
$sql = "insert into phone_record(mac,phone) values($mac,$phone)
on duplicate key update phone= $phone";
$re = $dbo->excute($sql);
return $re;
}