Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在RubyonRails中存储内存中的数据_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 如何在RubyonRails中存储内存中的数据

Ruby on rails 如何在RubyonRails中存储内存中的数据,ruby-on-rails,ruby,Ruby On Rails,Ruby,我们的应用程序必须非常频繁地记录用户的行为(10~15秒),而且可能会有相当大的IO。因此,我们不希望每次用户更新某些内容时都将数据存储到数据库中,我们希望将所有内容都存储在内存中(如数组),然后在内存达到一定大小时将其存储到数据库中。出于我们的目的,不同用户的日志应该放在同一内存中 我们已经在客户端做了一些缓存,但是我们想在服务器上进一步优化它 在ROR中有什么好办法吗 谢谢 这是一个常见问题。如果您对缓存数据结构感兴趣,Redis是一款基于闪电般快速内存的数据结构服务器,通常用于减轻基于磁盘

我们的应用程序必须非常频繁地记录用户的行为(10~15秒),而且可能会有相当大的IO。因此,我们不希望每次用户更新某些内容时都将数据存储到数据库中,我们希望将所有内容都存储在内存中(如数组),然后在内存达到一定大小时将其存储到数据库中。出于我们的目的,不同用户的日志应该放在同一内存中

我们已经在客户端做了一些缓存,但是我们想在服务器上进一步优化它

在ROR中有什么好办法吗


谢谢

这是一个常见问题。如果您对缓存数据结构感兴趣,Redis是一款基于闪电般快速内存的数据结构服务器,通常用于减轻基于磁盘的数据库的负载。截至2015年,这是一篇关于这一主题的最新文章


如果您不想使用Redis或Memcached,Rails还具有基于本机内存的缓存功能:

定义“内存中”的确切位置?在rails应用程序上-数据库就是你的内存。看看redis,一个非常快速的键值内存存储。@TaryEast,我的意思是RAM@silverwen在哪台计算机上?服务器端?如果是,请参考我上面所说的。注意:您基本上可以假设,在Rails(或任何服务器端无状态应用程序)中的每个请求之后,RAM中的任何内容都会被删除,以便下次请求(由其他人)可以重用RAM。如果你指的是客户端计算机,那就不同了,你必须使用客户端代码(不是rails,比如javascript)在本地客户端计算机上进行任何存储。谢谢@TarynEast。它在服务器端。但频繁地查询数据库将带来非常繁重的IO,我们正在努力将这一成本降至最低。我们知道RAM不能在请求之间使用,所以我们想知道是否有一些方法可以在请求之间保持RAM创建应答勘误表!谢谢!有一件事我不是很确定:如果我使用Rails缓存,它需要设置一个过期时间,文档中的示例似乎主要使用该缓存来缓存请求响应,那么Rails缓存适合我的情况吗?(可能我遗漏了文档中的某些内容)您可以将任何内容放入对象缓存中(例如值数组),然后将其拉出并添加到缓存中,然后再放回缓存中。如果它变得足够大,那么可以将其刷新/持久化到数据库中。