😸

Rails7.1からRails.cache.incrementだけでキャッシュキーを作成してくれるようになった。

2025/03/11に公開

アップグレードの際に調べたのでメモ

Rails7.1からRails.cache.incrementの動作が以下のように変更になった。

# config.cache_store = :mem_cache_storeとして動作確認した。

# Rails7.0まで
# キャッシュに書き込むには事前にRails.cache.writeなどを実行し、キーを作成しておく必要がある。
Rails.cache.increment("hoge", 1, expires_in: 1.day)
=> nil
Rails.cache.exist?('hoge', raw: true)
=> false
Rails.cache.read('hoge', raw: true)
=> nil

# Rails7.1以降
# キーがなくてもRails.cache.incrementを実行すると、キーの作成とincrementを同時に実行してくれる。
Rails.cache.increment("hoge", 1, expires_in: 1.day)
=> 1
Rails.cache.exist?("hoge", raw: true)
=> true
Rails.cache.read('hoge', raw: true)
=> "1"

変更が加えられたPR
https://github.com/rails/rails/pull/45068

Discussion