我一直在思考这个问题。一个有 10000 名访问者 24/7 在线访问的网站,运行查询以选择所有具有 lastaction > time() - 300(5 分钟前)的行不是很好吗?此查询将每分钟运行数千次。
问问题
124 次
1 回答
0
然后,仅在缓存已过期时才运行此查询
SELECT count(*) FROM users WHERE status = 1 // assume status = 1 = logged in here
像这样:
$memcache = memcache_connect('localhost', 11211);
// it is highly important to firewall off your memcache port.
$contents = memcache_get($memcache, 'user_count');
if ($contents === false) {
$count = /* query here */
memcache_set($memcache, 'user_count', $count, 0, 2);
} else {
$count = htmlspecialchars($contents);
// note: slightly unsafe in that there is no security. always escape.
}
于 2013-02-03T20:10:15.930 回答