Redis®*: はじめに
Redis を使い始めるためのクイックガイド
👋 Stackheroのドキュメントへようこそ!
Stackheroは、数多くの利点を提供する、すぐに使えるRedisクラウドソリューションを提供しています。
Redis CommanderWeb 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.
Ruby と Ruby on Rails で Redis を使う
Ruby on Rails のキャッシュシステムとして Redis を設定する
まず、次のコマンドで 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 を設定する
Sidekiq は、REDIS_URL 環境変数で定義された Redis サーバーを自動的に使用します。
次のように、ご自身の接続情報で REDIS_URL を設定できます:
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
Sidekiq で Redis を使う方法の詳細については、Sidekiq 公式ドキュメントを参照してください。
Resque 用に Redis を設定する
Sidekiq と同様に、Resque は REDIS_URL 環境変数で定義された Redis サーバーを使用します。
次のように、ご自身の情報で REDIS_URL を設定できます:
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
Resque で Redis を使う方法の詳細については、Resque 公式ドキュメントを参照してください。
Redis で PHP セッションを処理する
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 インスタンスを安全に保つことは重要であり、いくつかのシンプルな対策でも大きな違いを生みます。
Redis との通信を暗号化する (TLS)
デフォルトでは、Redis はネットワークトラフィックを暗号化しません。Stackhero では、TLS 暗号化がデフォルトで有効になっています。
これを活用するには、Redis クライアントが TLS を使用し、<PORT_TLS> ポート経由で接続するよう設定できます。暗号化されていない通信が適切な特定のケースでのみ <PORT_CLEAR> を使用し、暗号化通信を提供する <PORT_TLS> を使うのが最適です。
良い点は、サーバー側で追加設定する必要がないことです。その部分はすでにこちらで対応しています。
Redis をブルートフォース攻撃から保護する
Redis インスタンスはパスワードで保護されており、Stackhero はデフォルトで強力なものを自動生成します。変更する場合は、非常に長く複雑なパスワードを選ぶのが最適です。
Redis は非常に高速で、非常に多くの認証試行を処理できます。実際には、攻撃者が 1 秒あたり最大 150,000 通りのパスワード組み合わせを試せる可能性があることを意味します。
保護を強化するため、当社では最小パスワード長を 16 文字に設定しており、これは約 4.5231285e+74 通りの組み合わせに相当します。デフォルトでは、Stackhero は 64 文字のパスワードを使用しており、これは約 9.61963e+111 通りの組み合わせに相当します。
さらに強力に保護するには、Firewall タブから Stackhero のファイアウォールルールを設定し、ご自身の IP アドレスからの接続のみを許可することもできます。これは、全体的なセキュリティ体制を向上させる最も効果的な方法の 1 つです。