このページでは、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-gb を 8 に設定した場合、データがインスタンス メモリを 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 |
アイドル状態のクライアント接続が終了するまでの秒数。ただし、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 構成の詳細を学ぶ。