相关疑难解决方法(0)

memcached:哪个更快,执行添加(和检查结果),或者执行get(并在返回false时设置)

这个问题的标题不是那么清楚,但代码和问题很简单.

假设我想每天向用户展示一次广告.为了实现这一点,每次他们访问我网站上的页面时,都会检查某个memcache密钥是否存储了任何数据.如果是这样,请勿展示广告.如果没有,请将值"1"存储在该密钥中,到期时间为86400.

我可以用两种方式做到这一点:

//version a
$key='OPD_'.date('Ymd').'_'.$type.'_'.$user;
if($memcache->get($key)===false){
 $memcache->set($key,'1',false,$expire);
 //show ad
}

//version b
$key='OPD_'.date('Ymd').'_'.$type.'_'.$user;
if($memcache->add($key,'1',false,$expire)){
 //show ad
}
Run Code Online (Sandbox Code Playgroud)

现在,似乎很明显b更好,它总是进行1个memcache调用.但是,"添加"与"获取"的开销是多少?这些并不是真正的比较...而我只是编写了这些数字,但是假设1加〜= 1集〜= 5得到努力,平均用户每天查看5页:

a: (5 get * 1 effort) + (1 set * 5 effort) = 10 units of effort

b: (5 add * 5 effort) = 25 units of effort
Run Code Online (Sandbox Code Playgroud)

总是进行添加呼叫会有意义吗?这是不必要的微优化吗?

optimization memcached

6
推荐指数
1
解决办法
1932
查看次数

标签 统计

memcached ×1

optimization ×1