高流量 - 多个请求设置相同的memcached密钥?

时间:2012-10-07 17:13:05

标签: php memcached key high-traffic

我正在设置memcached。关于高流量和更新/设置密钥的最佳实践,我有几个问题。我正在创建一个在线游戏,用户可以按10,50,100的增量分配点数。

使用:将用户“游戏统计信息”存储在密钥中并每隔5分钟左右运行一次cron作业,以便在数据存储区中永久更新统计信息。通过这种方式,“游戏”可以在没有使用db来判断值的情况下运行。

将使用预热脚本来拉取和填充用户统计信息的密钥

问题:
1)是否会出现高流量且试图写入该用户点密钥的问题?

2)在memcache中增加值的最佳实践?

这是我现在正在使用的一个粗略的想法

$newval = $memcache->get( $key ); 
$memcache->set($key, $newval+10, false, 1000) or die ("Failed to save data at the server");

3)在memcache中存储用户游戏统计数据的建议?任何投入将不胜感激。

谢谢大家!

1 个答案:

答案 0 :(得分:4)

在递增存储在Memcache中的值时,使用Memcache's increment function来避免潜在的竞争条件。

如果除了递增之外还需要进行其他数学运算(例如重置为零),请使用compare and swap (cas)