データベース
 Computer >> コンピューター >  >> プログラミング >> データベース

Redisのユースケース徹底解説:押さえておきたい代表的な活用シーン5選

本記事は、2017年11月7日にObjectRocket.com/blogで公開された記事を翻訳・再編集したものです。

Redis™は、シンプルながら高速なインメモリデータストアとして、さまざまな場面で活用されています。この記事では、Redisの最も一般的なユースケースを5つ紹介し、それぞれの選択に影響する特性について解説します。

1. セッションキャッシュ

Redisの最も分かりやすいユースケースのひとつが、セッションキャッシュとしての利用です。Memcachedなど他のセッションストアと比較した場合のRedisの大きな利点は、永続化機能を備えている点にあります。キャッシュは通常、整合性の面でミッションクリティカルではないとされますが、ショッピングカートのセッションがすべて消えてしまえば、ほとんどのユーザーは不満を抱くでしょう。Redisなら、そのような事態を防ぎやすくなります。

幸い、Redisは長年にわたって人気を集めてきたため、セッションキャッシュへの適切な活用方法に関するドキュメントも豊富に見つかります。有名なECプラットフォームであるMagento®にも、Redis用のプラグインが用意されています。

2. フルページキャッシュ(FPC)

基本的なセッショントークン以外にも、Redisは手軽に導入できるフルページキャッシュ(FPC)プラットフォームとして機能します。ここでも整合性が重要なポイントです。ディスク永続化を有効にしていれば、Redisインスタンスを再起動してもページ読み込み速度が低下することはありません。PHPネイティブのFPCなどとは大きく異なる点です。

Magentoには、Redisをフルページキャッシュのバックエンドとして使うためのプラグインが提供されています。

また、WordPress®ユーザーであれば、Pantheon™が公開している優れたプラグイン「wp-redis」を利用することで、これまで体験したことのない高速なページ表示を実現できます。

3. キュー(メッセージキュー)

Redisのインメモリストレージエンジンによるリスト操作やセット操作を活かすと、Redisはメッセージキューとして非常に優れたプラットフォームになります。Python®などのプログラミング言語でリストに対するpush/pop操作を使い慣れている人なら、Redisをキューとして扱う感覚はきっと自然に感じられるはずです。

実際、「Redis キュー」で検索してみると、あらゆるキューリングのニーズに応えるバックエンドとしてRedisを活用するためのオープンソースプロジェクトが数多く見つかります。たとえばCeleryには、Redisをブローカーとして使用するバックエンドがあり、ぜひチェックしてみてください。

4. ランキングとカウント処理

Redisはインメモリで動作するため、インクリメントやデクリメントといった処理を高速に行えます。さらに、セットやソート済みセット(Sorted Set)というデータ構造により、この種の操作が格段に簡単になります。Redisはまさにこれらのデータ構造を両方備えているのです。

たとえば、ソート済みセット「user_scores」から上位10人のユーザーを取得するには、次のコマンドを実行します。

ZRANGE user_scores 0 10

これは、ユーザーをスコアの増加順にランク付けしている前提のコマンドです。ユーザー名とスコアを両方返したい場合は、次のように実行します。

ZRANGE user_scores 0 10 WITHSCORES

Agora Gamesでは、Rubyを使用し、Redisをデータストアとしたランキング機能の実装例を公開しています。

5. パブリッシュ/サブスクライブ(Pub/Sub)

Redisには、パブリッシュ/サブスクライブ(Pub/Sub)機能が搭載されています。この機能のユースケースは無限大です。SNSでのつながりの実装、Pub/Subイベントをトリガーとしたスクリプトの実行、さらにはRedis Pub/Subを使ったチャットシステムの構築など、さまざまな活用例が見られます。

Redisが提供する多くの機能の中で、このPub/Subは、ユーザーにとってこれほど多くの可能性を秘めているにもかかわらず、意外と注目されていない機能ではないでしょうか。

RackspaceのDBAサービスについて詳しく知りたい方は、公式サイトをご確認ください。

コメントやご質問がある場合は、フィードバックタブをご利用ください。私たちとの対話もぜひ始めてみてください。

  1. Fastly ComputeでUpstash Redisを活用する方法

    この記事では古いバージョンのFastly CLIを使用しています。最新の手順については、こちらの記事をご確認ください。 この記事では、Fastly Compute@Edge上で動作するシンプルなアプリケーションを作成します。このアプリケーションはUpstash Redisにアクセスし、ページビュー数を記録します。 モチベーション エッジコンピューティングは、近年最も注目されているトレンドのひとつです。CloudflareやFastlyといったCDNサービスは、ユーザーが自社のエッジインフラストラクチャ上でアプリケーションを実行できるようにしました。これにより、開発者はグローバルに分散した高

  2. Reddit利用時にVPNは必要?安全に使うためのポイントとプライバシー保護の徹底解説

    Redditは通常、モデレーターが各コミュニティを自主的に管理することを認めていますが、サイト全体のガイドラインは「Redditコンテンツポリシー」によって定められています。Redditはこれまでも議論を呼ぶ出来事がありましたが、近年はヘイトスピーチや不審なコンテンツへの対策を強化しています。それでもなお、「Redditは本当に安全に使えるのか?」と不安に感じるユーザーは少なくありません。 Redditの利用中にVPNを使うべきか? Redditの利用規約では、13歳以上のみサイトへのアクセスが認められています。しかし、年齢確認はごく基本的なレベルにとどまっており、幼い子どもでも簡単にアクセ