このページでは、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 | 
| データベース | Redis バージョン 3.2 以降。Redis サーバー上のデータベースの数を指定します。 | 1-100デフォルトは 16です。 | 
| lazyfree-lazy-eviction | Redis バージョン 7.0 以降。Eviction で Lazy Free を有効または無効にします。 noは、この構成を無効にします。詳細については、REDIS.CONF をご覧ください。 | no(デフォルト)yes | 
| lazyfree-lazy-expire | Redis バージョン 7.0 以降。Expire で Lazy Free を有効または無効にします。 noは、この構成を無効にします。詳細については、REDIS.CONF をご覧ください。 | no(デフォルト)yes | 
| lazyfree-lazy-user-del | Redis バージョン 7.0 以降。ユーザー DEL の Lazy Free を有効または無効にします。 noは、この構成を無効にします。詳細については、REDIS.CONF をご覧ください。 | no(デフォルト)yes | 
| lazyfree-lazy-user-flush | Redis バージョン 7.0 以降。User Flash で Lazy Free を有効または無効にします。 noは、この構成を無効にします。詳細については、REDIS.CONF をご覧ください。 | 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-clients | Redis 7.0 以降。この構成を使用すると、ユーザーはクライアントの最大メモリ使用量を制御できます。 通常/pubsub クライアントの合計メモリ使用量。上限に達すると、メモリ使用量が最も多いクライアントが強制排除されます。 | デフォルトは 0%(無制限)です。指定できる値は、0%~100%の整数値です。クライアント ストレージが制限されるインスタンスの maxmemory の割合を表します。 | 
| maxmemory-gb | エビクション ポリシーを有効にする調整可能な上限を指定します。たとえば、10 GB のインスタンスがあり、 maxmemory-gbを8に設定した場合、データがインスタンス メモリを 8 GB 占有したときにエビクション ポリシーが有効になります。これにより、オーバーヘッドとして 2 GB のメモリが残ります。デフォルトでは、maxmemory-gbがインスタンスの容量に設定されています。maxmemory-gb構成の最適な使用方法の詳細については、Memorystore のメモリ管理のベスト プラクティスをご覧ください。この構成は、Google Cloud コンソールで maxmemory-percentとして表示されます。コンソールを使用する場合は、特定の GB 数ではなく、インスタンス容量の割合としてmaxmemory-percentを設定します。 | 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 キャッシュ ページをご覧ください。 | noevictionallkeys-lruvolatile-lru(デフォルト)allkeys-randomvolatile-randomvolatile-ttlvolatile-lfu(Redis バージョン 4.0 以降)allkeys-lfu(Redis バージョン 4.0 以降) | 
| notify-keyspace-events | 特定のキースペース イベントの通知をクライアントに登録できるようにします。詳細については、Redis サイトの Redis キースペースの通知のページをご覧ください。 | ""(デフォルト)Kキースペース イベント。__keyspace@ Eキーイベント イベント。__keyevent@ gDEL、EXPFire、RENAME などの一般的なコマンド $文字列コマンド lリストコマンド sセットコマンド hハッシュ コマンド zソートされたセットコマンド x期限切れイベント(キーが期限切れになるたびに生成されるイベント) e削除イベント(maxmemory のためにキーが削除された場合に生成されるイベント) Ag$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 | アイドル状態のクライアント接続が終了するまでの秒数。ただし、 timeoutが0に設定されている場合、アイドル状態のクライアントはタイムアウトせず、クライアントが終了を発行するまで接続を維持します。 | 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 構成の詳細を学ぶ。