質問: Laravel5を使用してWebアプリケーションを実装しています。 初回アクセスは外部サイトのAPIで取得した情報をRedisに保存して、すべてのアクセスユーザーが毎回APIを叩かなくてもいいようにしようと思っています。 ただ、SessionでもCacheでもRedisに保存できるようなのですが、どういうふうに使い分けるのかがわかりません。 どのような用途で分けるのでしょうか?
回答: SessionとCacheは用途が違います。 やりたいことを実現するためにどちらもRedisという技術を使いますが、用途が違うため利用場面は変わってきます。 Session 主にブラウザが閉じるまで維持されるデータです。 データのアクセス権限としてはサーバとブラウザでセッションIDをやり取りするため、ブラウザまたいだデータの流用はできません。一ブラウザで一セッションが基本です。 利用例としては ログインの維持、ECサイトのカート機能 Cache 基本的に明示的にクリアしない限り維持されるデータです。 データのアクセス権限はどこからでも可能です。アプリケーション側で制約をしない限りCacheにつながる人であれば誰でも利用できます。 利用例としては 重いSQLクエリ結果のキャッシュ