Redisは、オープンソースのインメモリデータ構造ストアで、データベース、キャッシュ、メッセージブローカーとして使用されます。文字列、ハッシュ、リスト、セット、ソートセット、ビットマップ、ハイパーログ、地理空間インデックス、ストリームなど、さまざまなデータ構造をサポートしています。Redisには、レプリケーション、Luaスクリプト、LRU駆逐、トランザクション、さまざまなレベルのディスク永続化が組み込まれており、Redis SentinelとRedis Clusterを通じて高可用性と自動パーティショニングを提供します。
Redisの主な特徴
高性能:Redisはインメモリデータベースで、読み書き速度が非常に速いです。
豊富なデータ型:さまざまなデータ構造をサポートしており、異なるアプリケーションシナリオに適しています。
永続化:データをディスクに永続化することをサポートし、データの損失を防ぎます。
レプリケーション:マスター・スレーブレプリケーションをサポートしており、データを複数のRedisインスタンス間でレプリケートできます。
高可用性:Redis Sentinelを通じて監視、通知、自動フェイルオーバーを提供します。
分散型:Redis Clusterを通じて自動パーティショニングと高可用性を提供します。
トランザクション:トランザクションをサポートしており、複数のコマンドを一度に実行できます。
Redisのアプリケーションシナリオ
キャッシュ:Redisはキャッシュとして使用でき、データの読み書き速度を向上させます。
カウンター:Redisのアトミック操作を使用してカウンター機能を実装できます。
メッセージキュー:Redisのリスト構造を使用してメッセージキューを実装できます。
リーダーボード:Redisのソートセットを使用してリーダーボード機能を実装できます。
セッション管理:Redisはセッションデータを保存してセッション管理を実装できます。
分散ロック:Redisの分散ロックを使用して分散システムの並行制御を実装できます。
Redisの設定
Redisの設定ファイルは /etc/redis/redis.conf
にあり、設定ファイルを変更することでRedisを設定できます。
一般的な設定項目は以下の通りです:
daemonize
: デーモンモードで実行するかどうか、デフォルトはno。
port
: Redisサーバーがリッスンするポート、デフォルトは6379。
bind
: Redisサーバーがリッスンするアドレス、デフォルトは0.0.0.0。
timeout
: クライアントがアイドル状態になってから接続を閉じるまでの時間、デフォルトは0(閉じない)。
loglevel
: ログレベル、選択肢はdebug、verbose、notice、warning、デフォルトはnotice。
logfile
: ログファイルのパス、デフォルトはstdout。
databases
: データベースの数、デフォルトは16。
save
: 永続化設定、形式は save 秒数 変更回数、デフォルトは save 900 1。
rdbcompression
: rdbファイルを圧縮するかどうか、デフォルトはyes。
dbfilename
: rdbファイル名、デフォルトはdump.rdb。
dir
: rdbファイルの保存パス、デフォルトは/var/lib/redis。
maxmemory
: 最大メモリ制限、デフォルトは0、無制限を意味します。
maxmemory-policy
: メモリ制限を超えた場合の処理ポリシー、選択肢はvolatile-lru、allkeys-lru、volatile-random、allkeys-random、volatile-ttl、デフォルトはnoeviction。
appendonly
: aof永続化を有効にするかどうか、デフォルトはno。
appendfilename
: aofファイル名、デフォルトはappendonly.aof。
appendfsync
: aof永続化ポリシー、選択肢はalways、everysec、no、デフォルトはeverysec。
requirepass
: パスワードを設定、デフォルトは設定なし。
maxclients
: 最大クライアント接続数、デフォルトは10000。
maxmemory-samples
: LRUアルゴリズムのサンプル数、デフォルトは5。
slaveof
: マスター・スレーブレプリケーション設定、形式はslaveof ホスト名 ポート番号。
masterauth
: マスター・スレーブレプリケーションのパスワード。
cluster-enabled
: クラスターモードを有効にするかどうか、デフォルトはno。
cluster-config-file
: クラスター設定ファイル、デフォルトはnodes.conf。
cluster-node-timeout
: クラスターノードのタイムアウト時間、デフォルトは15000。
cluster-slave-validity-factor
: クラスターのスレーブ有効性係数、デフォルトは10。
cluster-migration-barrier
: クラスター移行バリア、デフォルトは1。
cluster-require-full-coverage
: クラスターがすべてのスロットをカバーする必要があるかどうか、デフォルトはyes。
cluster-replica-no-failover
: クラスターのスレーブノードがフェイルオーバーを実行できるかどうか、デフォルトはno。
cluster-announce-ip
: クラスターノードのブロードキャストアドレス。
cluster-announce-port
: クラスターノードのブロードキャストポート。
cluster-announce-bus-port
: クラスターノードのバスポート。