0

我有 3 台服务器运行一个网站。我现在需要实现登录系统,但我遇到了问题,因为用户会根据它连接到的服务器获得不同的行为(登录或注销)。

我在 Rails 中使用 Memcache 进行会话存储 - config.action_controller.session_store = :mem_cache_store

ActiveSupport::Cache::MemCacheStore.new("server1","server2","server3")

我认为第二行将保持缓存同步或类似的东西......

每台服务器都有自己的数据库,1 个主服务器,2 个从服务器。我曾尝试在 sql 存储中进行会话,但这确实会伤害 sql 服务器,并且复制负载变得非常沉重。

有没有一种简单的方法可以说,将这个 Memcache 用于所有 3 个服务器上的所有会话存储?

这能解决我的问题吗?

我会很感激的。

4

1 回答 1

0

我以前没有使用过 memcached 来存储会话(我觉得 redis 是一个更好的解决方案),但我认为只要你的 ActiveSupport::Cache::MemCacheStore.new("server1","server2","server3") 每个应用程序服务器上都有线路,你的会话应该保持同步。

仅使用您描述的相同设置使用常规 cookie 会话,我已经取得了很大的成功。

于 2011-04-04T17:08:34.523 回答