我正在设置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中存储用户游戏统计数据的建议?任何投入将不胜感激。
谢谢大家!
答案 0 :(得分:4)
在递增存储在Memcache中的值时,使用Memcache's increment function来避免潜在的竞争条件。
如果除了递增之外还需要进行其他数学运算(例如重置为零),请使用compare and swap (cas)。