What is the difference between Rails.cache.clear and rake tmp:cache:clear?
The rake task only clears out files that are stored on the filesystem in "#{Rails.root}/tmp/cache"
. Here's the code for that task.
namespace :cache do
# desc "Clears all files and directories in tmp/cache"
task :clear do
FileUtils.rm_rf(Dir['tmp/cache/[^.]*'])
end
end
Rails.cache.clear
will do different things depending on your apps setting for config.cache_store
. http://guides.rubyonrails.org/caching_with_rails.html#cache-stores
If you are using config.cache_store = :file_store
then Rails.cache.clear
will be functionally identical to rake tmp:cache:clear
. However, if you're using some other cache_store
, like :memory_store
or :mem_cache_store
, then only Rails.cache.clear
will clear your app cache. In that case rake tmp:cache:clear
will just try to remove files from "#{Rails.root}/tmp/cache"
but probably won't actually do anything since nothing is probably being cached on the filesystem.
Crashalot
Hello. My friends call me SegFault. Describe myself in 10 seconds? You know those feisty, whip-smart, sometimes funny, and occasionally charming developers who dominate StackOverflow and consider Swift/Ruby/jQuery their native tongue? Yah, I buy coffee for them.
Updated on July 09, 2022Comments
-
Crashalot almost 2 years
Are the two commands equivalent? If not, what's the difference?