在我的PHP网站上,我每10秒向服务器发送一次AJAX请求,然后我做这样的事情:
update users set points = points + 1 where id = 5
问题是有很多MySQL更新,它正在杀死我的服务器。
我想暂时将点存储在某处,当为用户累积100点时,我将更新用户表。所以1插入而不是100插入。
我应该如何临时存储数据?
要求: - 大量的更新 - 存储至少500MB的数据(如果存储在内存中,我有足够的内存) - (可选)如果可能,服务器重启后数据应该在那里
memcached适合这个吗? (很多更新)
是否有像memcached这样的选项,但可以选择将数据写入磁盘并在重新启动服务器时将其恢复?
APCu或MongoDB或NoSQL数据库会更好吗?
答案 0 :(得分:1)
看看Redis。它可以轻松解决您的问题。
它是像memcached这样的关键值存储。我发现它对我的需求更好。它有Atomic Increments可以解决您的确切问题。
如果我是对的,它也可以将数据保存到磁盘。