Why not login to Qiita and try out its useful features?

We'll deliver articles that match you.

You can read useful information later.

0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Redisを初めて実務で導入してみた

Last updated at Posted at 2025-03-10

はじめに

バックエンドエンジニア歴2年、Redisに初めて触れたので記念するため記事として記録する!

どんなサービスに導入した?

ディスプレイ広告のImpression集計サービスに導入した。

Impression集計フローを変えた。

理由

サーバのディスク使用率が100%になったことがあり、Impressionの書き込みができず、損失に繋がったことがある。
ディスク使用率が100%に絶対ならないような対策と共に、リアルタイムでDBに保存するよう変更した。既存と同じくcsvファイルとしてもバックアップするので、どっちか一箇所が壊れてもImpressionを担保できる。

既存の仕様

  1. ImpressionサーバでImpressionをcsvファイルにテキスト形式で保存
  2. Batchサーバでcsvファイルを読みDBに保存

image.png

新しい仕様

  1. ImpressionサーバでDBに直保存する
  2. バックアップとしてcsvファイルも取っておく

image.png

Redisで実現できたこと

  1. リアルタイムでImpressionを集計
    • Redisのシングルスレッドのおかげで、マルチスレッド環境で同時生問題を防いだ
    • ListをQueueのように使うことでデータ損失防止(LeftPush, RightPop)
  2. ImressionデータをRedisに臨時保存する→BatchInsertすることでRDSとのI/Oコスト削減

RabbitMqを使ったらもっと良かったかも?

  • Redisはメモリを使うのでDiskを使うローカルRabbitMqを使ったらもっと良かったかもしれない。
    • また、Message Queueがあるとinsert失敗シナリオ対策がもっと柔軟にできそうだった。
  • 今後は他サービスとの連携をEvent Driven Architectureで作ってみたい(配信〜在庫管理〜imp集計)
    • RabbitMq VS Kafka、どっちを使う方がいいか考えてみよう、、!
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up

Qiita Conference 2025 will be held!: 4/23(wed) - 4/25(Fri)

Qiita Conference is the largest tech conference in Qiita!

Keynote Speaker

ymrl、Masanobu Naruse, Takeshi Kano, Junichi Ito, uhyo, Hiroshi Tokumaru, MinoDriven, Minorun, Hiroyuki Sakuraba, tenntenn, drken, konifar

View event details
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?