sql >> Databasteknik >  >> NoSQL >> Redis

Ställa in cache_store i en initialiserare

Efter lite forskning är en trolig förklaring att initialize_cache-initialisatorn körs långt innan rälsen/initialiserarna körs. Så om det inte har definierats tidigare i exekveringskedjan kommer cachelagret inte att ställas in. Du måste konfigurera det tidigare i kedjan, som i application.rb eller environments/production.rb

Min lösning var att flytta APP_CONFIG-laddningen innan appen konfigureras så här:

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

och sedan i samma fil:

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

Ett annat alternativ var att lägga cache_store i ett before_configuration-block, ungefär så här:

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. Kan inte hitta modulen 'socket.io/node_modules/redis'

  2. Hur ändrar man ordning på array med MongoDB?

  3. Hur aktiverar jag TLS för Redis 6 på Sidekiq?

  4. Hur kontrollerar jag noll/null i Redis' Lua cjson?