ruby—如何在rails中执行两级缓存机制?

gc0ot86w  于 2021-06-09  发布在  Redis
关注(0)|答案(0)|浏览(311)

我需要在食物菜单刷新应用程序上执行两级缓存机制。我必须使用memcache和redis进行缓存。
首先需要检查菜单是否存在于memcache中,如果它不存在或无法获取,需要移动到redis caching并检查菜单是否存在于not上,如果它不存在或由于某些redis问题无法从db中获取菜单项。

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 %>

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题