Rails.cache(memory_store) を使用してユーザーのオンライン/オフライン リストを管理したいと考えています。
基本的に、リクエストが/user/heartbeat?name=John
Rails サーバーに到達した場合、次の処理が実行されます。
def update_status
name = params.require(:name)
Rails.cache.write(name, Time.now.utc.iso8601, expires_in: 6.seconds)
end
しかし、次のように Rails.cache に保存されているすべてのデータを取得するにはどうすればよいでしょうか?
def get_status
# wrong codes, as Rails.cache.read doesn't have :all option.
ary = Rails.cache.read(:all)
# deal with array ...
end
しばらくグーグルで調べてみたところ、Rails.cache ではすべてのデータを直接取得する方法が提供されていないようです。それとも、データを保存するより良い方法があるのでしょうか?
を使用していますRails 5.0.2
。
御時間ありがとうございます!
ベストアンサー1
Redisをお持ちの場合は、次のようなものを使用できますRails.cache.redis.keys