在插入MySQL之前临时存储数据

时间:2013-12-29 16:35:54

标签: php mysql caching nosql memcached

在我的PHP网站上,我每10秒向服务器发送一次AJAX请求,然后我做这样的事情:

update users set points = points + 1 where id = 5

问题是有很多MySQL更新,它正在杀死我的服务器。

我想暂时将点存储在某处,当为用户累积100点时,我将更新用户表。所以1插入而不是100插入。

我应该如何临时存储数据?

要求:    - 大量的更新    - 存储至少500MB的数据(如果存储在内存中,我有足够的内存)    - (可选)如果可能,服务器重启后数据应该在那里

memcached适合这个吗? (很多更新)

是否有像memcached这样的选项,但可以选择将数据写入磁盘并在重新启动服务器时将其恢复?

APCu或MongoDB或NoSQL数据库会更好吗?

1 个答案:

答案 0 :(得分:1)

看看Redis。它可以轻松解决您的问题。

它是像memcached这样的关键值存储。我发现它对我的需求更好。它有Atomic Increments可以解决您的确切问题。

如果我是对的,它也可以将数据保存到磁盘。