ruby-on-rails - 使用 memcached 进行缓存

标签 ruby-on-rails session memcached authlogic

我的主要布局中有一个部分,如下所示。我开始使用 memcached 并想知道这部分是否可以以某种方式缓存,因为 current_user 调用会在每次页面加载时对数据库产生影响,并且由于其背后的插件(authlogic)的性质,它实际上会更新用户记录(即易腐烂的 token )。

无论如何通过缓存或任何其他方式解决这个问题?

<ul class="header_links">
                <% unless  current_user %>
                  <li><%= link_to "Sign Up", new_user_path, :id => 'main_sign_up_link', :class=> 'special-text'%></li>
                  <li><%= link_to "Login", login_path, :id => 'main_login_link' %></li>
                <% else %>
                  <li><%= link_to "New Vote", new_user_vote_topic_path(current_user), :id => 'main_new_vote_link',  :class=> 'special-text' %></li>
                  <li><%= link_to current_user.username.titleize, current_user, :id => 'main_profile_link' %></li>
                  <li><%= link_to "Logout", logout_path  %></li>
                <% end %>
              </ul>

最佳答案

你在使用易腐 token 吗?这个SO question表示您可以删除该列,或设置 disable_perishable_token_maintenance = true以防止每页加载时更新数据库命中。

至于缓存——一般来说,您可以为每个人缓存非个性化数据,并仅为那个人缓存个性化数据。所以是的,您可以缓存该 block ,但 key 需要在其中包含 user_id。

关于ruby-on-rails - 使用 memcached 进行缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3379396/

相关文章:

python - 为什么 memcache 在我的 Django 中不起作用?

php - 如何使用 MemCache 或 Redis 在 PHP 和 Node 之间发送用户特定的数据

ruby-on-rails - 运行 rails server 时 Windows 上没有 Javascript 运行时

php session.use_trans_sid

asp.net - 无法向 session 状态服务器发出 session 状态请求?

PHP session导致varnish不缓存

python - 加速常用的 Django 随机查询

ruby-on-rails - Rails 3,在记录创建时更新 Controller 中的链接模型

ruby-on-rails - 如何从 rspec Controller 测试中省略某些内容?

ruby-on-rails - 如何从 scaffold_controller 模板中删除 respond_to block