Redis 構成

このページでは、Memorystore for Redis で使用できる maxmemory ポリシーとその他の Redis 構成について説明します。構成を調整する場合、Redis インスタンスを再起動する必要はありません。

下記の構成を変更する手順については、Redis インスタンスの構成をご覧ください。

maxmemory ポリシー

Redis インスタンスのメモリがいっぱいになり、新しい書き込みが発生すると、Redis はキーのエビクションを行い、インスタンスの maxmemory ポリシーに基づいて書き込み用にスペースを確保します。Memorystore for Redis のデフォルトの maxmemory ポリシーvolatile-lru です。次のいずれかの maxmemory ポリシーを使用することもできます。

  • noeviction: Redis インスタンスが maxmemory に達するとエラーを返します。データの上書きや削除は行いません。
  • allkeys-lfu: Redis バージョン 4.0 以降で使用できます。キーセット全体から、使用頻度の最も低い(LFU)キーを削除します。
  • allkeys-lru: キーセット全体から、最も長い間使用されていない(LRU)キーを削除します。
  • volatile-lfu: Redis バージョン 4.0 以降で使用できます。TTL(有効期間)期限が設定されている、使用頻度の低いキーを削除します。
  • volatile-lru: TTL 期限が設定されている、最も長い間使用されていない(LRU)キーを削除します。
  • allkeys-random: キースペース全体からランダムにキーを削除します。
  • volatile-random:TTL 期限が設定されたキーの中から、ランダムにキーを削除します。
  • volatile-ttl: TTL 期限が設定されたキーのうち、最も短い TTL を持つキーを削除します。

変更可能な構成パラメータ

Memorystore for Redis インスタンスを作成または更新する際に、次のパラメータを変更できます。


パラメータ 説明 使用できる値
activedefrag Redis バージョン 4.0 以降。標準的な OSS Redis メモリ フラグメンテーション動作によって結び付けられたインスタンス メモリを解放します。 no(デフォルト)
yes
lfu-decay-time Redis バージョン 4.0 以降。分単位の時間。LFU より前では、指定されたキーの頻度カウンタを 2 で割った値(または、カウンタが 10 未満の場合は 1 減少させた数)。詳細については、REDIS.CONF ファイルをご覧ください。 「long」データ型の正の整数
(デフォルトは 1)
lfu-log-factor Redis バージョン 4.0 以降。頻度カウンタがキーのヒットを表す方法を決定します。デフォルトの構成を変更する前に、REDIS.CONF ファイルで lfu-log-factor 構成がどのように機能するかをご覧ください。 「long」データ型の正の整数
(デフォルトは 10)
maxmemory-gb エビクション ポリシーを有効にする調整可能な上限を指定します。たとえば、10 GB のインスタンスがあり、maxmemory-gb8 に設定した場合、データがインスタンス メモリを 8 GB 占有したときにエビクション ポリシーが有効になります。これにより、オーバーヘッドとして 2 GB のメモリが残ります。デフォルトでは、maxmemory-gb がインスタンスの容量に設定されています。maxmemory-gb 構成の最適な使用方法の詳細については、Memorystore のメモリ管理のベスト プラクティスをご覧ください。

この構成は、Google Cloud コンソールで maxmemory-percent として表示されます。コンソールを使用する場合は、maxmemory-percent を特定の GB 数ではなく、インスタンス容量の割合として設定します。
GB 数。整数または小数で表します。
例:
10 は、10 GB の maxmemory-gb を指定します。
1.5 は 1.5 GB の maxmemory-gb を指定します。
maxmemory-gb はインスタンスの容量の最小 20% に減らすことができます。
maxmemory-policy インスタンス データが maxmemory-gb の上限に達すると Redis が行う動作を指定します。各ポリシーの動作については、Maxmemory ポリシーをご覧ください。

オープンソースの Redis maxmemory ポリシーについてさらに詳しくは、オープンソースの Redis の LRU キャッシュ ページをご覧ください。
noeviction
allkeys-lru
volatile-lru(デフォルト)
allkeys-random
volatile-random
volatile-ttl
volatile-lfu(Redis バージョン 4.0 以降)
allkeys-lfu(Redis バージョン 4.0 以降)
notify-keyspace-events 特定のキースペース イベントの通知をクライアントに登録できるようにします。詳細については、Redis サイトの Redis キースペースの通知のページをご覧ください。 ""(デフォルト)
K
キースペース イベント。__keyspace@__ 接頭辞付きで公開されます。
E
キーイベント イベント。__keyevent@__ 接頭辞付きで公開されます。
g
DEL、EXPFire、RENAME などの一般的なコマンド
$
文字列コマンド
l
リストコマンド
s
セットコマンド
h
ハッシュ コマンド
z
ソートされたセットコマンド
x
期限切れイベント(キーが期限切れになるたびに生成されるイベント)
e
削除イベント(maxmemory のためにキーが削除された場合に生成されるイベント)
A
g$lshzxe のエイリアス。したがって、"AKE" 文字列は全イベントを意味します。
stream-node-max-bytes Redis バージョン 5.0 以降。Redis ストリームのデータ構造では、基数ツリーを使用して項目を保存します。stream-node-max-bytes パラメータは、単一のツリーノードにアイテムを格納できる最大バイト数を指定します。この上限に達すると、新しい項目が新しいツリーノードに保存されます。 0 以上の整数。
(デフォルトは 4,096)
0 は、サイズが無制限のツリーノードを示します。
stream-node-max-entries Redis バージョン 5.0 以降。Redis ストリームのデータ構造では、基数ツリーを使用して項目を保存します。stream-node-max-entries パラメータは、単一ノードに保存できる項目数を指定します。この上限に達すると、新しい項目が新しいツリーノードに保存されます。 0 以上の整数。
(デフォルトは 100)
0 は、アイテム数が無制限のツリーノードを示します。
timeout アイドル状態のクライアント接続が終了するまでの秒数。ただし、timeout0 に設定されている場合、アイドル状態のクライアントはタイムアウトせず、クライアントが終了を発行するまで接続を維持します。 0(デフォルト)
整数 >= 120
単位 =

変更不可の構成パラメータ

次の表に、Redis の Memorystore で変更できない Redis 構成パラメータとそのデフォルト値を示します。これらの構成パラメータの詳細については、Redis の構成ドキュメントをご覧ください。

パラメータ デフォルト値
lua-time-limit 5000
hash-max-ziplist-entries 2048
hash-max-ziplist-value 1024
list-max-ziplist-size -2
list-compress-depth . 0
set-max-intset-entries 512
zset-max-ziplist-entries 1024
zset-max-ziplist-value 1024
hll-sparse-max-byte 3000
activerehashing
hz 10
databases 16
maxclients 65000
slowlog-log-slower-than 10000
slowlog-max-len 128
repl-diskless-load swapdb
io-threads-do-reads

次のステップ

  • オープンソースの [Redis 構成] ページで Redis 構成の詳細を学ぶ。