Redis
表示
Redis とは?
[編集]Redis の概要
[編集]- Redis(Remote Dictionary Server)は、オープンソースのインメモリデータストアです。
- キーバリュー型のデータベースとして設計されており、高速なデータアクセスを提供します。
- データの永続化もサポートしており、キャッシュ、セッション管理、メッセージキューなど、さまざまな用途で利用されます。
Redis の特徴
[編集]- 高速: データをメモリに保存するため、非常に高速なアクセスが可能。
- 多様なデータ型: 文字列、リスト、セット、ハッシュ、ソート済みセットなどをサポート。
- 永続化: スナップショットやAOF(Append-Only File)を使用してデータをディスクに保存。
- レプリケーション: マスタースレーブレプリケーションをサポート。
- トランザクション: 複数のコマンドをアトミックに実行可能。
Redis のインストールとセットアップ
[編集]インストール
[編集]- debian:
sudo apt-get update sudo apt-get install redis-server
- macOS:
brew install redis
- Windows: Windows Subsystem for Linux (WSL) を使用するか、Docker を利用。
起動と停止
[編集]- 起動:
redis-server
- 停止:
redis-cli shutdown
設定ファイル
[編集]- 設定ファイルは通常
/etc/redis/redis.confにあります。 - 主な設定項目:
port: リスニングポート(デフォルト: 6379)bind: バインドするIPアドレスrequirepass: パスワード認証
Redis の基本操作
[編集]Redis CLI の使用
[編集]- Redis CLI を起動:
redis-cli
- 基本的なコマンド:
SET key value: キーに値を設定GET key: キーの値を取得DEL key: キーを削除KEYS pattern: パターンに一致するキーを検索
データの永続化
[編集]- RDB(スナップショット): 定期的にデータをディスクに保存。
- AOF(Append-Only File): すべての書き込み操作をログに記録。
データ型とその使い方
[編集]文字列(String)
[編集]- 文字列を保存するためのデータ型。
- 例:
SET mykey "Hello" GET mykey
リスト(List)
[編集]- 順序付きの要素のリスト。
- 例:
LPUSH mylist "world" LPUSH mylist "hello" LRANGE mylist 0 -1
セット(Set)
[編集]- 一意の要素の集合。
- 例:
SADD myset "apple" SADD myset "banana" SMEMBERS myset
ハッシュ(Hash)
[編集]- フィールドと値のペアを保存。
- 例:
HSET myhash field1 "Hello" HGET myhash field1
ソート済みセット(Sorted Set)
[編集]- スコア付きの一意の要素の集合。
- 例:
ZADD myzset 1 "one" ZADD myzset 2 "two" ZRANGE myzset 0 -1 WITHSCORES
高度な機能
[編集]トランザクション
[編集]- 複数のコマンドをアトミックに実行。
- 例:
MULTI SET key1 "value1" SET key2 "value2" EXEC
Pub/Sub
[編集]- メッセージのパブリッシュとサブスクライブをサポート。
- 例:
SUBSCRIBE mychannel PUBLISH mychannel "Hello"
Lua スクリプティング
[編集]- Lua スクリプトを使用して複雑な操作を実行。
- 例:
EVAL "return redis.call('GET', 'mykey')" 0
パフォーマンスチューニング
[編集]メモリ最適化
[編集]maxmemory設定を使用してメモリ使用量を制限。maxmemory-policyでデータの削除ポリシーを設定。
レプリケーション
[編集]- マスタースレーブレプリケーションを使用して読み取り負荷を分散。
クラスタリング
[編集]- Redis Cluster を使用してデータを分散保存。
セキュリティと運用
[編集]認証
[編集]requirepassを使用してパスワード認証を設定。
ネットワークセキュリティ
[編集]bind設定を使用してアクセス可能なIPアドレスを制限。
バックアップとリストア
[編集]- RDB や AOF を使用して定期的にバックアップ。
ユースケースとベストプラクティス
[編集]キャッシュ
[編集]- データベースの負荷を軽減するためにキャッシュとして使用。
セッション管理
[編集]- ユーザーのセッションデータを保存。
メッセージキュー
[編集]- Pub/Sub やリストを使用してメッセージキューを実装。
トラブルシューティング
[編集]パフォーマンスの問題
[編集]- メモリ使用量やネットワーク遅延を確認。
データの不整合
[編集]- レプリケーションや永続化設定を確認。
接続の問題
[編集]- ファイアウォールやネットワーク設定を確認。
参考資料
[編集]このハンドブックは、Redis の基本的な使い方から高度な機能までをカバーしています。Redis を効果的に活用するための参考としてご利用ください。