スケールアウト リポジトリとしての Redis の要件および構成

注:

Rocket® Enterprise スイート製品には、ご使用の IBM® CICS® アプリケーションとの互換性を実現する独自のランタイム エンジンが用意されています。IBM および CICS は International Business Machines Corp. の登録商標です。Rocket Enterprise スイート製品には IBM CICS エンジンは含まれておらず、IBM とは提携関係にありません。

一般的に、REDIS には CICS テーブルだけでなく、TSQ および TDQ データも保存できます。これらにはアプリケーション データが含まれます。Redis および Redis に保存できるデータ型に関する詳細については、こちらのドキュメントを参照してください。

本番環境では、Redis 5.0.3 から 6.2.6 をサポートする Enterprise 対応の Redis サーバーを使用することをお勧めします。ただし、TLS 接続をサポートするにはバージョン 6.0 以降が必要です。

注:Redis Sentinel を使用すると、Redis の高可用性を実現できます。

Redis との通信の構成の要件

Redis との通信を構成するには、構成ファイルをポイントするように環境変数 MFREDIS_CONFIG を設定します。この構成ファイルの変数は次のとおりです。

RD_KEEPALIVE_INTERVAL
Redis との接続に使用するキープアライブ期間 (秒数) を指定します。デフォルト値は 15 です。
RD_LUA_LOG
Redis サーバーのロギングを有効にします。
注:--log-levelwarning 以上に設定して Redis サーバーが起動されている必要があります。
ON
ロギングを有効にします。
OFF
ロギングを無効にします。

デフォルト値は OFF です。

RD_RETRY_INTERVAL
Redis クライアントが失敗した接続要求を再試行する間隔 (ミリ秒) を指定します。

デフォルト値は 2000 (2 秒) です。

RD_RETRY_ATTEMPTS
Redis クライアントが失敗した要求を再試行する回数を指定します。

デフォルト値は 1 です。

Redis Sentinel の追加構成

Redis Sentinel には次の追加構成が必要です。

Redis では、Redis マスターおよび必要な数の Redis レプリカを指定する必要があります。クォーラムを作成するには、奇数の Redis Sentinel が必要です。

次の例で、ポート 6741 にマスターがあり、ポート 6742 に 1 つのレプリカがあり、ポート 6800、6801、および 6802 に 3 つのセンチネルがある Redis Sentinel を起動して構成する方法を示します。

Redis マスターを起動するには、コマンド プロンプトで次のように入力します。

redis-server.exe --port 6741 --protected-mode no --bind 0.0.0.0

Redis レプリカを起動するには、コマンド プロンプトで次のように入力します。

redis-server.exe redis_replica.conf

3 つの Redis センチネルを起動するには、コマンド プロンプトで次のように入力します。

redis-server.exe sentinel-1.conf –-sentinel
redis-server.exe sentinel-2.conf –-sentinel
redis-server.exe sentinel-3.conf –-sentinel

ここでは、Redis マスターは MY_MASTER と呼ばれ、これは大文字である必要があります。次の例で、redis_replica.conf ファイルの内容を示します。次の構成ファイルで、実際の要件を反映するように太字のテキストを変更してください。

bind 0.0.0.0
port 6742   ## The port used by the replica.
tcp-backlog 511 
timeout 0 
tcp-keepalive 0 
loglevel notice 
logfile "" 
databases 16 
save 900 1 
save 300 10 
save 60 10000 
stop-writes-on-bgsave-error yes 
rdbcompression yes 
rdbchecksum yes 
dbfilename "dump.rdb" 
replicaof 127.0.0.1 6741    ## The port and IP used by the master
replica-serve-stale-data yes 
replica-read-only yes 
repl-diskless-sync no 
repl-diskless-sync-delay 5 
repl-disable-tcp-nodelay no 
replica-priority 100 
appendonly no 
appendfilename "appendonly.aof" 
appendfsync everysec 
no-appendfsync-on-rewrite no 
auto-aof-rewrite-percentage 100 
auto-aof-rewrite-min-size 64mb 
aof-load-truncated yes 
lua-time-limit 5000 
slowlog-log-slower-than 10000 
slowlog-max-len 128 
latency-monitor-threshold 0 
notify-keyspace-events "" 
hash-max-ziplist-entries 512 
hash-max-ziplist-value 64 
set-max-intset-entries 512 
zset-max-ziplist-entries 128 
zset-max-ziplist-value 64 
hll-sparse-max-bytes 3000 
activerehashing yes 
client-output-buffer-limit normal 0 0 0 
client-output-buffer-limit replica 256mb 64mb 60 
client-output-buffer-limit pubsub 32mb 8mb 60 
hz 10 
aof-rewrite-incremental-fsync yes

sentinel-1.confsentinel-2.conf、および sentinel-3.conf の内容は、ポートを除いて同じです。該当するセンチネルによって使用されるポートに対応するようにポートを変更します。

port 6800     ## The port used by the sentinel
sentinel monitor MY_MASTER 127.0.0.1 6741  ## The name, IP, and port used by the master.
sentinel down-after-milliseconds MY_MASTER 5000
sentinel failover-timeout MY_MASTER 60000 
sentinel parallel-syncs MY_MASTER 1

PAC 構成の場合、ESCWA では、SOR 名が Redis マスター名 MY_MASTER と一致しており、その後にすべてのセンチネルの IP およびポートが続いている必要があります。次に例を示します。

set ES_SCALE_OUT_REPOS_1=MY_MASTER=redis,127.0.0.1:6800,127.0.0.1:6801,127.0.0.1:6802##TMP

TLS 対応の Redis 接続の構成

環境変数 ES_SCALE_OUT_REPOS の sorType パラメーターに redis_TLS を指定することで、TLS 対応の Redis 接続を構成できます。次に例を示します。
ES_SCALE_OUT_REPOS_1=MySOR=redis_TLS,127.0.0.1:6379##TMP#
これに加えて、PAC のメンバーである各エンタープライズ サーバー リージョンに対して、ES_RTLS_CERT_AUTH_FILEPATH、ES_RTLS_CERT_FILEPATH、および ES_RTLS_PRIVATE_KEY_FILEPATH 環境変数も指定する必要があります。あるいは、ESCWA では、TLS 対応の Redis スケールアウト リポジトリ (SOR) を持つ PAC のメンバーであるすべてのエンタープライズ サーバー リージョンについて、[Advanced Region Properties] ページで [Certificate Authority Filepath]、[Certificate Filepath]、および [Private Key Filepath] プロパティを指定できます。