保存站点范围变量的安全和执行方式

时间:2012-05-17 03:13:06

标签: ruby-on-rails variables global

我正在构建一个rails应用程序,有一个站点范围的计数器变量(计数器)由不同的页面使用(读取和写入),基本上很多页面可以导致计数器增量,什么是多线程安全的方式存储此变量以便 1)它是线程安全的,我可能有许多并发用户访问可能会读取和写入此变量 2)高性能,我原本想在DB中保留这个变量,但是想知道是否有更好的方法,因为可以有大量的请求,我不想让这个数据库查询成为我的应用程序的瓶颈... < / p>

建议?

2 个答案:

答案 0 :(得分:1)

这取决于它是否必须完全准确。假设没有,您可以将其存储在memcached中并偶尔同步到数据库。如果memcached崩溃,它将过期(如果配置正确则不应该发生),您必须关闭等,在启动时从数据库重新加载它。

您还可以查看membase。我没有尝试过,但为了简化,它是一个自动持久存储到磁盘的分布式memcached服务器。

为了获得更好的性能和准确性,您可以查看分片方法。

答案 1 :(得分:0)

你需要持久性,所以你必须将它存储在数据库/会话/文件,AFAIK中。