13
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

read, write, fetchの違い【Rails.cache.fetchを例に解説】

Last updated at Posted at 2019-08-31

先に結論

read:データを読み込む
write:データに書き込む
fetch:データを1つ取り出す(取ってきた後に、読み込みか書き込みか決定する)

以上です。

fetchについてはフェッチ【DB】 - 「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典を読むと理解が深まるかと思います。

背景

RailsでRails.cache.fetchメソッドを調べていて、「あれ、fetchってそもそもどういう意味だっけ...」となったので調べました。

具体例(Rails.cache.read, write, fetch)

Railsのキャッシュを操作するRails.cacheを例に挙げます。

・read、writeの使い方


# キャッシュからデータを読み込む('city'をキーとするデータが存在しないのでnilが返ってくる)
Rails.cache.read('city') # => nil

# キャッシュにデータを書き込む('city'がキー、'Tokyo'が値)
Rails.cache.write('city', 'Tokyo')

# キャッシュからデータを読み込む('Tokyo'が返ってくる)
Rails.cache.read('city')  # => 'Tokyo'

・fetchの使い方


# キャッシュからデータを取ってくる('city'をキーとするデータが存在しないのでnilが返ってくる)
Rails.cache.fetch('city') # => nil

# キャッシュからデータを取ってくる
# もしデータが存在しなければ、do~endに囲まれたブロック部分を書き込む
Rails.cache.fetch('city') do
  'Tokyo'
end

# キャッシュからデータを取ってくる('Tokyo'が返ってくる)
Rails.cache.fetch('city') # => 'Tokyo'

以上です。

参考文献:Ruby on Rails API 公式サイト

13
9
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?