sql >> Database teknologi >  >> NoSQL >> Redis

Indstilling af cache_store i en initializer

Efter nogle undersøgelser er en sandsynlig forklaring, at initialize_cache-initialisatoren køres langt før skinnerne/initialisatorerne. Så hvis det ikke er defineret tidligere i udførelseskæden, vil cache-lageret ikke blive indstillet. Du skal konfigurere det tidligere i kæden, f.eks. i application.rb eller environments/production.rb

Min løsning var at flytte APP_CONFIG-indlæsningen, før appen bliver konfigureret sådan her:

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

og derefter i samme fil:

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

En anden mulighed var at placere cache_store i en before_configuration-blok, noget som dette:

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. Hvad er den bedste måde at gemme datoer i MongoDB?

  2. Den mest effektive måde at få flere hashes på i Redis?

  3. mongorestore mislykkedes:ingen tilgængelige servere

  4. MongoDB vs. Redis vs. Cassandra for en hurtigskrivende, midlertidig rækkelagringsløsning