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

本番環境では、Redis 5.0.3 から 6.0 をサポートする Enterprise 対応の Redis サーバーを使用することをお勧めします。

Redis の詳細については、こちらをクリックしてください。

開発製品には、開発のみを目的としたオープン ソース バージョンの Redis が付属しています。Enterprise Developer には、Windows 版にも UNIX 版にも Redis が付属しています。

注: Enterprise Developer に付属の Windows 版の Redis は、テストのみを目的としており、本番環境での使用は想定していません。Micro Focus では、本番環境においては、Linux または Windows で実行される NoSQL データベースと互換性がある Enterprise 対応の Redis を必要に応じて使用することをお勧めします。製品に付属のオープン ソースの Redis は、UNIX 環境でのみ使用できます。
Windows 環境用の Redis サーバーを起動するには、Enterprise Developer コマンド プロンプトを起動し、次のように入力します。
%ProgramFiles(x86)%\Micro Focus\Enterprise Developer\AdoptRedis\redis-server.exe
UNIX 環境用の Redis サーバーを起動するには、コマンド プロンプトを起動し、次のように入力します。
$COBDIR/AdoptRedis/redis-server
注: これにより、デフォルト ポート 6379 で Redis サーバーが起動します。

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