LoginSignup
3
1

More than 3 years have passed since last update.

[WIP]RedisとSidekiqの説明

Posted at

SidekiqとRedisを知るために、情報をまとめた記事です。

sidekiqとは

sidekiqとは、非同期処理を行いたい時に使うライブラリである。
Railsが必須というわけではないようですが、基本的にはRailsで使います。

sidekiqの使い方

1.まず、sidekiqを追加します。

gem 'sidekiq'

2.app/workersにワーカーファイルを作成します。

rails g sidekiq:worker Hard #このコマンドがapp/workers/hard_worker.rbファイルを作成します
class HardWorker
  include Sidekiq::Worker
  def perfome(name, count)
    # do something
  end
end

3.非同期処理が行われるように、ジョブを作成します

HardWorker.perform_async('bob', 5)

"perform"はインスタンスメソッドです。
他にも下記のようなインスタンスメソッドがあります。

HardWorker.perfome_in(5.minutes, 'bob', 5)
HardWorker.perfome_at(5.minutes.from_now, 'bob', 5)

メモ:もしsidekiqと使うときにrails consoleで使う場合は、springを止める事で新しいワーカーを使う事ができます。ワーカーの初期化かな?

4.sidekiqを動かすには下記コマンドを打ちましょう

bundle exec sidekiq

sidekiqにはpro版とかがある

Pro版とEnterprise版とで機能などが変わってくるそうです。
https://sidekiq.org/

Redisとは

Key-Valueストアデータベースです。
オープンソースのインメモリ型です。

データ保存方法の特徴

コンピュータの記憶領域として、
- CPUから直接アクセスできるメインメモリ
- ハードディスクなどのディスクストレージ
の2つがあります。
インメモリ・データベースとは、メインメモリ上だけでデータを管理する仕組みです。
メモリは「揮発性」という性質により、コンピューターが停止すると、メモリに載っている情報も全て消えてしまいます。しかしRedisではデータ永続化機能のオプションがあり、メインメモリ上のデータをディスクストレージに記憶させる事ができます。

Redisで保存できるデータ

Redisでは
- リスト型
- セット型
- ハッシュ型
のデータも扱う事ができます。

Redisの用途

キャッシュ

  • DBクエリ結果のキャッシュ
  • 永続的なセッションのキャッシュ
  • Webページのキャッシュ
    • 画像
    • ファイル
    • メタデータ

チャット

リアルタイムでのコメントストリーム
ソーシャルメディアフィード

ゲームのリーダーボード

リアルタイムでのランキングリストを作成する

セッションストア

セッション状態のなどを管理する時

リッチメディアストリーミング

(とにかく認証系を素早く大量に処理できる、という事でしょうか・・・)

地理空間

(地理空間データを簡単・高速に処理する事ができるそうです。位置情報などをリアルタイムに更新する際などには良さそうですね。)

Machine Learning

作成されたデータに対して、並行して機械学習・データ処理を行う訳ですが、その処理を行う際に、迅速に処理する事ができるという点ではRedisは有用なようです。

リアルタイム分析

断続的に更新されるデータを素早く処理するという意味で、Redisは有用そうです。

こうして見ると、Redisは、メモリの特徴を踏まえればわかるように、リアルタイム処理などに有効に働くようです。

競合ライブラリ

MemcachedもインメモリのOSSデータストアです。

参照
https://github.com/mperham/sidekiq/wiki/Getting-Started
https://aws.amazon.com/jp/redis/

3
1
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
3
1