Redis®*: はじめに

Redis を使い始めるためのクイックガイド

👋 Stackheroのドキュメントへようこそ!

Stackheroは、数多くの利点を提供する、すぐに使えるRedisクラウドソリューションを提供しています。

  • Redis Commander Web UIを含む。
  • メッセージサイズと転送が無制限
  • ワンクリックで簡単にアップデート
  • プライベートで専用のVMによる最適なパフォーマンスと強力なセキュリティ

時間を節約し、生活を簡素化:StackheroのRedisクラウドホスティングソリューションを試すのに5分しかかかりません!

Redis は、強力で非常に高速なインメモリデータベースであり、複数の役割を担えます。キャッシュ、キー・バリューストア、リアルタイムなデータ構造エンジン、または publish/subscribe とイベントシステムとして利用できます。

Redis は再びオープンソースになりました: Redis 8 (2025年5月) 以降、GNU AGPLv3 ライセンスで提供されています。 パーミッシブライセンス (BSD) の drop-in 代替を希望する場合は、コミュニティ主導の fork である Valkey も Stackhero で利用できます。

使い始めやすいように、Redis インスタンスへの接続方法を示すコード例を共有しています。以下の GitHub リポジトリで確認できます: https://github.com/stackhero-io/redisGettingStarted.

まず、次のコマンドで redis gem をインストールできます:

bundle add redis

次に、config/environments/production.rb を開いて、以下の行を追加します:

config.cache_store = :redis_cache_store, { url: ENV["REDIS_URL"] }

その後、REDIS_URL 環境変数を定義できます。以下は、ご自身の情報に合わせて調整できるテンプレートです:

REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"

デフォルトでは、キャッシュは production 環境でのみ有効です。開発中にキャッシュをテストしたい場合は、config/environments/development.rb も更新できます。上記と同じ設定を追加し、キャッシュを有効にするために config.action_controller.perform_caching = true を含めてください。キャッシュが動作していることを簡単に確認する方法として、bin/rails console で Rails コンソールを起動し、Rails.cache.write("foo", "bar") を試す方法があります。

Ruby on Rails で Redis を cache store として使う方法の詳細については、Rails 公式ドキュメントを参照してください。

Sidekiq は、REDIS_URL 環境変数で定義された Redis サーバーを自動的に使用します。

次のように、ご自身の接続情報で REDIS_URL を設定できます:

REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"

Sidekiq で Redis を使う方法の詳細については、Sidekiq 公式ドキュメントを参照してください。

Sidekiq と同様に、Resque は REDIS_URL 環境変数で定義された Redis サーバーを使用します。

次のように、ご自身の情報で REDIS_URL を設定できます:

REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"

Resque で Redis を使う方法の詳細については、Resque 公式ドキュメントを参照してください。

PHP セッションを Stackhero for Redis に保存したい場合は、次の例を使用できます:

<?php

// Redis URL を解析
$redis_url = parse_url("rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>")

// セッションハンドラを設定
ini_set("session.save_handler", "redis")
ini_set("session.save_path", "tls://{$redis_url["host"]}:{$redis_url["port"]}?auth={$redis_url["pass"]}&timeout=5")

// セッションを開始
session_start()

?>

Redis インスタンスを安全に保つことは重要であり、いくつかのシンプルな対策でも大きな違いを生みます。

デフォルトでは、Redis はネットワークトラフィックを暗号化しません。Stackhero では、TLS 暗号化がデフォルトで有効になっています。

これを活用するには、Redis クライアントが TLS を使用し、<PORT_TLS> ポート経由で接続するよう設定できます。暗号化されていない通信が適切な特定のケースでのみ <PORT_CLEAR> を使用し、暗号化通信を提供する <PORT_TLS> を使うのが最適です。

良い点は、サーバー側で追加設定する必要がないことです。その部分はすでにこちらで対応しています。

Redis インスタンスはパスワードで保護されており、Stackhero はデフォルトで強力なものを自動生成します。変更する場合は、非常に長く複雑なパスワードを選ぶのが最適です。

Redis は非常に高速で、非常に多くの認証試行を処理できます。実際には、攻撃者が 1 秒あたり最大 150,000 通りのパスワード組み合わせを試せる可能性があることを意味します。

保護を強化するため、当社では最小パスワード長を 16 文字に設定しており、これは約 4.5231285e+74 通りの組み合わせに相当します。デフォルトでは、Stackhero は 64 文字のパスワードを使用しており、これは約 9.61963e+111 通りの組み合わせに相当します。

さらに強力に保護するには、Firewall タブから Stackhero のファイアウォールルールを設定し、ご自身の IP アドレスからの接続のみを許可することもできます。これは、全体的なセキュリティ体制を向上させる最も効果的な方法の 1 つです。