微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Rails中执行二级缓存机制?

如何解决如何在Rails中执行二级缓存机制?

我需要在食物菜单刷新应用程序上执行两级缓存机制。我必须使用Memcache和Redis进行缓存。

首先需要检查菜单在内存缓存中是否存在,如果不存在或无法获取,则需要移至redis缓存并检查菜单是否存在,如果没有或由于某些redis问题获取而失败数据库中的菜单项。

pos_items = Rails.cache
              .fetch("pos_menu_items_for_location_#{@location_id}",expires_in: 90.days) do
              pos_items = RedisCache::PosMenu.fetch(location_id: @location_id) do
                            pos_items = PosMenuReader.new(location_id: @location_id).call
                            RedisCache::PosMenu.update(location_id: @location_id,menu: pos_items) unless pos_items == "working"
                            if pos_items == "working" 
                              wait_for_worker_to_finish = true
                            else %> 
                              <% Rails.logger.info("DEBUG::PosMenu::#{pos_menu_key} Fetched from db.") %>
                              <% pos_items %>
                          <% end
                          end
          end %>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。