sql >> Databáze >  >> NoSQL >> Redis

Nastavení cache_store v inicializátoru

Po nějakém výzkumu je pravděpodobným vysvětlením, že inicializátor initialize_cache běží mnohem dříve než rails/inicializátory. Takže pokud to není definováno dříve v řetězci provádění, pak úložiště mezipaměti nebude nastaveno. Musíte jej nakonfigurovat dříve v řetězci, například v application.rb nebo environments/production.rb

Mým řešením bylo přesunout načítání APP_CONFIG předtím, než se aplikace nakonfiguruje takto:

APP_CONFIG = YAML.load_file(File.expand_path('../config.yml', __FILE__))[Rails.env]

a poté ve stejném souboru:

config.cache_store = :redis_store, APP_CONFIG['redis']

Další možností bylo umístit cache_store do bloku before_configuration, něco takového:

config.before_configuration do
  APP_CONFIG = YAML.load_file(File.expand_path('../config.yml', __FILE__))[Rails.env]
  config.cache_store = :redis_store, APP_CONFIG['redis']
end


  1. MongoDB - objekty? Proč potřebuji _id v souhrnu

  2. MongoDB vnořené vyhledávání se 3 úrovněmi

  3. Meteor:nahrávání souboru z klienta do kolekce Mongo vs souborový systém vs GridFS

  4. Změna portu Redis v Docker Compose nefunguje