为什么我们要避免在rails中使用类变量@@?

为什么我们要避免在rails中使用类变量@@? 这有什么安全漏洞吗? 请回答,因为我是新的rails。 我正在使用实例变量@variable_name 。 我试过一次@@variable_name

我只知道类变量是, 类变量在对象之间是可共享的

但我真的想知道为什么我们要避免在rails中使用类变量@@?

仅仅因为它们不是线程安全的。 许多rails =有能力的服务器是multithreading的。 这意味着在任何给定时间可能有多个运行的应用程序实例,并且您的一个用户的任何请求将被任意分配给其中一个。 类变量不在进程之间共享,因此在后续请求中您的类变量可能会有所不同。

即使您故意设法在单线程服务器中运行您的应用程序,也无法保证您的应用程序不会在请求之间重新启动,从而丢失您的类变量。

如果您想要类似于类变量提供的function,我强烈建议您查看键值存储,例如Memcached或Redis。