こんにちは、かびらです。
本日は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について取り上げます。