お問い合わせ

セッションと一時データはどうしてる?-Redisの役割-【Luxucomを支える技術 #5】

こんにちは、かびらです。

本日はRedisについて解説します。

Redisとは?

Redisは、高速に動くインメモリのキーバリュー型データストアです。

データをメモリ上に置くため、読み書きが非常に速いのが特徴です。

その特徴から、Redisは主にセッション管理や短期間のデータ保存に利用されます。

Redisを選んだ理由

LuxucomでRedisを選んだ理由は、何といっても「Djangoとの相性が抜群に良いこと」です。

LuxucomではDjangoを使っており、Redisはセッション管理や一時データの保存にも公式に対応しています。

さらに便利なライブラリも豊富で、開発生産性の向上にも一役買っています。

データの種類によるそれぞれの役割分担

Luxucomでは、データの性質に合わせて複数のデータベースを使い分けています。

永続性や正確な管理が必要なデータはPostgreSQL、高速で大量の読み書きが必要なデータはDynamoDBに保存しています。

その中でRedisは、速度を重視した一時的なデータ処理に使っています。

具体的には、ユーザーのセッション情報やWebSocketでの通信情報などです。

Redisと関連するアーキテクチャ

次に、LuxucomでRedisと関連するアーキテクチャを見ていきましょう。

Luxucomでは、DjangoからRedisを使うために、django-redisという接続ライブラリを利用しています。

実際のRedisサーバーはAWSのElastiCache上で運用されていて、ユーザーのセッション情報や一時データをやり取りしています。

Redisを使って良かった点

次に、Redisを使って良かった点です。

まずひとつめは、django-redisライブラリがとても使いやすいことです。

Djangoの設定に数行追加するだけで、セッション管理やキャッシュがすぐに使えるようになります。

そしてもうひとつは、AWSのElastiCacheとの接続が簡単なことです。

Redisサーバーを自前で構築する必要がなく、スムーズに運用に組み込めました。

Redisを使って難しかった点

続いて、Redisを使って難しかった点です。

Redisはとても高速で便利な一方で、一時データの保存や取得の方法は、最初は少し戸惑いました。

コマンドの書き方や、実際の動作に慣れるまでに時間がかかりました。

さいごに

というわけで今回は、Luxucomで採用しているデータベースのひとつ、Redisの役割についてご紹介しました。

次回は、チャットを実現する仕組み、WebSocketについて取り上げます。