- 導入支援/導入コンサルタント
- Webエンジニア(大阪PHP)
- カスタマーサクセス
- 他73件の職種
-
開発
- Webエンジニア(大阪PHP)
- テックリード(大阪/PHP)
- PM(楽楽シリーズ)
- ブリッジSE(大阪)
- ブリッジSE/オフショア開発
- エンジニアリングマネージャ
- フロントエンドマネージャー候補
- プロジェクトマネージャー
- エンジニアオープンポジション
- Javaエンジニア(楽楽明細)
- オフショアPJマネージャー
- Webエンジニア
- フロントエンドエンジニア
- Webエンジニア
- フロントエンド(リーダー)
- モバイルエンジニア
- Android/iOSアプリ
- インフラエンジニア
- インフラエンジニア
- インフラエンジニア/マネージャ
- 社内SE(大阪/セキュリティ)
- エンジニアリング
- システム企画
- AI/機械学習エンジニア
- 品質管理/技術支援チーム
- 戦略企画・データマネジメント
- QAリーダー/マネージャー
- 社内SE(データエンジニア)
- コーポレートデザイナー
- UIデザイナー(リーダー)
- UIデザイナー
-
ビジネス
- 導入支援/導入コンサルタント
- プロダクトマネージャー(AI)
- プロダクトマネージャー
- プロダクトセキュリティ
- プロジェクトマネージャ(大阪)
- 開発マネージャー
- PdM(楽楽シリーズ)
- アシスタントマネージャー
- PMMプロダクトマーケティング
- HRBP
- コーポレート広報
- IR
- 経営企画
- データマネジメント・マーケ戦略
- 内部監査(業務監査)
- 人材開発
- フィールドセールス(法人営業)
- ITセールス(広島)
- 法人営業/カスタマーサクセス
- フィールドセールス(名古屋)
- フィールドセールス
- ITセールス(名古屋)
- セールスマネージャー
- 営業企画(イネーブルメント)
- 法人営業
- フィールドセールス(東京)
- 営業企画(戦略立案)
- ITセールス
- ビジネスオープン
- ITセールス経験者
- ブランド企画・ブランディング
- 製品企画/法要件(楽楽明細)
- オフラインマーケティング
- 製品企画/プロダクトマーケ
- マーケティング担当
- CSマーケティング
- オンラインマーケティング
- 営業推進リーダー(楽楽精算)
- ブランド企画
- マーケティングリーダー
- その他
はじめに
みなさん こんにちは、Thuatと申します。 この記事ではセッション管理としてRedisを使用するケースを紹介します。
Redisとは?
Redis は簡単に言うと、メモリ上のKey-Valueストアです。 メモリ上にデータを格納しますので高速に動作します。
以下はインストールから簡単なデータの登録・取得までの手順になります。
Redisをインストールする
Redisサーバーを起動する
Redisのポートはデフォルトで6379になります。
クライアントからGET/SETする
Redisにあらかじめ組込まれているクライアントツールからデータをGET/SETしてみましょう。
シンタックスは以下になります。
set key value
get key
Redisは メモリ上にデータを格納しますので、デフォルトはサーバーを停止、再起動した場合は、データが失われます。 Redisはどのような時に利用すればよいでしょうか。 最適なユースケースはキャッシュやセッション管理です。
セッション管理としてRedisを使用する
セッションとは?
セッションはクライアントとサーバの通信の状態をWebサーバー上に保持されます。クライアントはセッションIDをURLやクッキー経由でサーバに渡します。 Key-Value構造としてメモリ、ファイル又はDBに格納します。KeyはセッションID、Valueはセッションに保存したいデータです。
デフォルトではセッションは Webサーバーのメモリ上に保持されます。 Webサーバー単独でセッション管理を行う場合はWebサーバーのロードバランサを構成できません。 セッションをDBに格納する設定にすると、ロードバランサを構成することができますが、パフォーマンスに影響します。
セッションについては、
セッション管理の周辺知識まとめ – PAYFORWARD
を参照ください。
Redisを使ってセッションを管理する
データをセッションではなくて Redisで管理する方法を紹介します。
Redisにはセッションのようにタイムアウト時間を設定できます。タイムアウト時間を超えた場合はRedisに保存したデータが自動的に削除されます。
以下の機能をJavaで実現してみます。
JavaでのRedisクライアントは多くありますが一番人気はJedisです。
https://github.com/xetorthio/jedis/wiki/Getting-started
プロジェクトのLibrariesにjedis-2.9.0.jarを追加してください。
http://search.maven.org/remotecontent?filepath=redis/clients/jedis/2.9.0/jedis-2.9.0.jar
jedis-2.9.0.jar を追加する
フォルダの構成は以下のようになります
Userクラスを作成します。
UserActionクラスを作成します。 ユーザーのデータをRedisに保存するためのクラスです。
3分後、自動にExpireされるように設定します。
KeyはユニークなUUID、ValueはJSONでのユーザーのデータです。
Eclipseで実行してみましょう。
a62a05d0-1efe-4d09-99f1-4289ff1511a6 は生成されたKey、ユニークなUUIDです。
セッション管理としてRedisを使用するメリットは以下になります。
- メモリ上に格納するのでパフォーマンスがよい
- Webサーバーの負荷が減る
- 別サーバーでセッション管理するので、Webサーバーのロードバランサを問題なく構成することができる
ロードバランサを構成するには以下のような構成となります。
最後に
セッション管理としてRedisを使用する方法やJavaでRedisにアクセスする方法を紹介しました。 Redisはまだたくさんオプションがあります。
例えば接続数ハンドル、トランザクション、クラスターなどをもっと知りたい方は https://github.com/xetorthio/jedis/wiki を参照ください。