我正在运行Rails 3配置为使用memcached进行会话存储.我有以下设置:
development.rb
config.cache_store = :mem_cache_store
session_store.rb
Foo::Application.config.session_store :mem_cache_store, :key => '_foo_session'
我可以启动应用程序,当我转到任何页面时,我收到以下错误:
ArgumentError (key too long "rack:session:__really_long_session_key__"):
我意识到memcached键的限制是255.我怎么能绕过这个,或者我做错了什么?
您几乎肯定会看到这一点,因为您正在从cookie存储库切换到memcached.您的浏览器仍然具有旧会话cookie,具有长ID.您需要从浏览器中删除此cookie,问题就会消失.
如果您在生产站点上从cookie存储库切换到memcached,这将是一个问题,因为您无法控制用户的浏览器.您可能需要更改会话密钥以避免在这种情况下出现问题.