Redis and timeouts
[4] pry(main)> Benchmark.realtime { Rails.cache.read('asdf') }
=> 0.000264
[17] pry(main)> Timeout.timeout(0.00020) { Rails.cache.read('asdf') }
=> "asdf"
[18] pry(main)> Timeout.timeout(0.00010) { Rails.cache.read('asdf') }
Timeout::Error: execution expired
[19] pry(main)> Timeout.timeout(0.00010) { Rails.cache.read('asdf') }
Timeout::Error: execution expired
[39] pry(main)> Timeout.timeout(0.00008) { Rails.cache.read('asdf') }
=> "asdf"
... number of same read calls calls ...
[40] pry(main)> Timeout.timeout(0.00008) { Rails.cache.read('asdf') }
=> "asdf"
[43] pry(main)> Timeout.timeout(0.00007) { Rails.cache.read('asdf') }
Timeout::Error: execution expired
[44] pry(main)> Rails.cache.write('qwer', 'qwer')
=> "\u0004\bo: ActiveSupport::Cache::Entry\t:\u0010@compressedF:\u0010@expires_in0:\u0010@created_atf\u00161446501225.592677:\v@value\"\u0013\u0004\bI\"\tasdf\u0006:\u0006ET"
[45] pry(main)> Rails.cache.fetch('zxc') { 42 }
=> "asdf"
[46] pry(main)> Rails.cache.fetch('zxc') { 42 }
=> "asdf"
[47] pry(main)> Rails.cache.fetch('zxc') { 42 }
TypeError: incompatible marshal file format (can't be read)
format version 4.8 required; 79.75 given
[48] pry(main)> Rails.cache.fetch('zxc') { 42 }
=> 42