<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Redis-Migration on K-Life Hack | 韓国ハイエンド・ライフスタイルガイド</title><link>https://klifehack.com/tags/redis-migration/</link><description>Recent content in Redis-Migration on K-Life Hack | 韓国ハイエンド・ライフスタイルガイド</description><generator>Hugo -- gohugo.io</generator><language>ja</language><lastBuildDate>Sat, 23 May 2026 09:55:55 +0900</lastBuildDate><atom:link href="https://klifehack.com/tags/redis-migration/index.xml" rel="self" type="application/rss+xml"/><item><title>Valkey 8.0 への移行によるキャッシュスループットの改善とレイテンシスパイクの解消</title><link>https://klifehack.com/p/valkey-migration-performance-tuning/</link><pubDate>Sat, 23 May 2026 09:55:55 +0900</pubDate><guid>https://klifehack.com/p/valkey-migration-performance-tuning/</guid><description>&lt;h1 id="aiエージェントのバーストトラフィックに伴うredisの限界と遅延の発生"&gt;AIエージェントのバーストトラフィックに伴うRedisの限界と遅延の発生
&lt;/h1&gt;&lt;p&gt;2026年5月現在、当社のAIエージェント基盤では、Claude CodeおよびCursorからの同時リクエストが急増しており、バックエンドのキャッシュ層として運用していたRedis 7.2クラスターにおいて深刻なパフォーマンス低下が確認されました。特に、ベクトル検索のメタデータキャッシュおよびセッション管理において、P99レイテンシが平常時の2msから150ms以上にまでスパイクする事象が頻発しました。&lt;/p&gt;
&lt;p&gt;監視ツール（Prometheus/Grafana）による分析の結果、Redisのシングルスレッドモデルに起因するCPU飽和が原因であることが判明しました。Redis 7系でもI/Oスレッドの分離は可能ですが、2026年のワークロードにおける高度な並列処理要求に対しては、スループットの限界に達していました。これを受け、Linux Foundation傘下で開発が進められている&lt;b&gt;&lt;mark&gt;Valkey 8.0&lt;/mark&gt;&lt;/b&gt;への移行を決定しました。&lt;/p&gt;
&lt;h2 id="発生していた障害の技術的詳細"&gt;発生していた障害の技術的詳細
&lt;/h2&gt;&lt;p&gt;以下のログは、Redis 7.2ノードで発生していたスロークエリログの抜粋です。AIエージェントが生成する複雑なパイプラインリクエストが、メインスレッドを長時間占有していました。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# Redis Slow Log Excerpt
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;1) (integer) 1024
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;2) (integer) 1717143615 # 2026-05-31 14:20:15
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;3) (integer) 45000 # Execution time: 45ms
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;4) 1) &amp;#34;MGET&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 2) &amp;#34;session:ai_agent:user_992834...&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 3) &amp;#34;metadata:vector:index_442...&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;この遅延により、アップストリームのgRPCサービスでタイムアウトが連鎖し、システム全体の可用性が98.2%まで低下しました。&lt;/p&gt;
&lt;h2 id="valkey-80-への移行手順とマルチスレッド最適化の設定"&gt;Valkey 8.0 への移行手順とマルチスレッド最適化の設定
&lt;/h2&gt;&lt;p&gt;移行にあたっては、Redisとの完全なプロトコル互換性を維持しつつ、Valkey独自のマルチスレッド拡張機能を有効化しました。Valkey 8.0では、コマンド実行自体の並列化が強化されており、特に大規模なMGETやSCAN操作において顕著な性能向上が期待できます。&lt;/p&gt;
&lt;h3 id="インストールおよびビルドプロセス"&gt;インストールおよびビルドプロセス
&lt;/h3&gt;&lt;p&gt;2026年環境の標準パッケージマネージャーである &lt;code&gt;uv&lt;/code&gt; を介して依存関係を整理し、以下の手順でビルドおよびデプロイを実施しました。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Valkey 8.0.1 のソース取得とビルド&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git clone --branch 8.0.1 https://github.com/valkey-io/valkey.git
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cd valkey
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;make -j&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;nproc&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo make install
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 既存のRedis設定からの移行と最適化&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cp /etc/redis/redis.conf /etc/valkey/valkey.conf
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sed -i &lt;span style="color:#e6db74"&gt;&amp;#39;s/redis/valkey/g&amp;#39;&lt;/span&gt; /etc/valkey/valkey.conf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="スループット向上のための設定変更"&gt;スループット向上のための設定変更
&lt;/h3&gt;&lt;p&gt;Valkeyの性能を最大限に引き出すため、&lt;code&gt;valkey.conf&lt;/code&gt; において以下のパラメータを調整しました。特に &lt;code&gt;io-threads&lt;/code&gt; の最適化が鍵となります。 🛠️&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-conf" data-lang="conf"&gt;# valkey.conf optimization for 2026 infrastructure
maxmemory 32gb
maxmemory-policy allkeys-lru
io-threads 8
io-threads-do-reads yes
# Valkey 8.0 specific: Enhanced multi-threading for command execution
server-threads 4
cluster-enabled yes
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="移行後のパフォーマンス検証とスループット測定"&gt;移行後のパフォーマンス検証とスループット測定
&lt;/h2&gt;&lt;p&gt;移行完了後、&lt;code&gt;valkey-benchmark&lt;/code&gt; を使用して、旧Redis環境との比較検証を実施しました。検証環境は、AWS r7g.2xlarge インスタンス（Graviton 4）を使用しています。&lt;/p&gt;
&lt;h3 id="ベンチマークコマンドの実行"&gt;ベンチマークコマンドの実行
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Valkey 8.0 への負荷テスト実行&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;valkey-benchmark -h 10.0.4.12 -p &lt;span style="color:#ae81ff"&gt;6379&lt;/span&gt; -c &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt; -n &lt;span style="color:#ae81ff"&gt;2000000&lt;/span&gt; -t set,get,mget -P &lt;span style="color:#ae81ff"&gt;16&lt;/span&gt; --threads &lt;span style="color:#ae81ff"&gt;8&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="検証結果の比較データ"&gt;検証結果の比較データ
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th style="text-align: left"&gt;指標&lt;/th&gt;
					&lt;th style="text-align: left"&gt;Redis 7.2 (Legacy)&lt;/th&gt;
					&lt;th style="text-align: left"&gt;Valkey 8.0 (New)&lt;/th&gt;
					&lt;th style="text-align: left"&gt;改善率&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td style="text-align: left"&gt;GET スループット (RPS)&lt;/td&gt;
					&lt;td style="text-align: left"&gt;420,000&lt;/td&gt;
					&lt;td style="text-align: left"&gt;1,350,000&lt;/td&gt;
					&lt;td style="text-align: left"&gt;+221%&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style="text-align: left"&gt;MGET (10 keys) RPS&lt;/td&gt;
					&lt;td style="text-align: left"&gt;85,000&lt;/td&gt;
					&lt;td style="text-align: left"&gt;290,000&lt;/td&gt;
					&lt;td style="text-align: left"&gt;+241%&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style="text-align: left"&gt;P99 レイテンシ (ms)&lt;/td&gt;
					&lt;td style="text-align: left"&gt;12.4ms&lt;/td&gt;
					&lt;td style="text-align: left"&gt;1.8ms&lt;/td&gt;
					&lt;td style="text-align: left"&gt;-85%&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style="text-align: left"&gt;CPU使用率 (ピーク時)&lt;/td&gt;
					&lt;td style="text-align: left"&gt;98% (1 core)&lt;/td&gt;
					&lt;td style="text-align: left"&gt;45% (Distributed)&lt;/td&gt;
					&lt;td style="text-align: left"&gt;負荷分散成功&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="運用監視におけるメトリクスの変化とログ証跡"&gt;運用監視におけるメトリクスの変化とログ証跡
&lt;/h2&gt;&lt;p&gt;Valkey導入後、ノードの稼働状況を確認したところ、スレッド間のコンテンション（競合）が最小限に抑えられていることが確認されました。以下は &lt;code&gt;valkey-cli info&lt;/code&gt; コマンドによる統計情報の出力です。 💡&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# Valkey Stats Excerpt
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;valkey_version:8.0.1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;multiplexing_api:epoll
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;io_threads_active:1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;server_threads_active:4
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;instantaneous_ops_per_sec:1284902
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;total_net_input_bytes:15829304822
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;total_net_output_bytes:89230492833
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;rejected_connections:0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;特筆すべきは、&lt;code&gt;rejected_connections&lt;/code&gt; が 0 を維持している点です。旧環境では、TCPバックログの溢れにより、1時間あたり平均150件の接続拒否が発生していました。&lt;/p&gt;
&lt;h2 id="発生した課題とトラブルシューティング"&gt;発生した課題とトラブルシューティング
&lt;/h2&gt;&lt;p&gt;移行初期において、一部のクライアントライブラリ（旧式の &lt;code&gt;redis-py&lt;/code&gt; 4.x系）で、Valkeyのクラスターバス通信におけるノード認識に失敗する事象が発生しました。 ⚠️&lt;/p&gt;
&lt;h3 id="根本原因"&gt;根本原因
&lt;/h3&gt;&lt;p&gt;Valkey 8.0 の &lt;code&gt;CLUSTER NODES&lt;/code&gt; 応答に含まれるメタデータ形式が、一部の古い正規表現ベースのパーサーと競合していました。&lt;/p&gt;
&lt;h3 id="解決策"&gt;解決策
&lt;/h3&gt;&lt;p&gt;クライアント側のライブラリを、2026年標準の &lt;code&gt;valkey-py&lt;/code&gt; または最新の &lt;code&gt;redis-py&lt;/code&gt; 5.5.0 以上にアップデートすることで解決しました。また、&lt;code&gt;uv&lt;/code&gt; を使用してプロジェクト全体の依存関係を強制的に同期しました。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 依存関係の更新&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;uv add valkey&amp;amp;gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;8.0.0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;uv lock
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="最終確認とシステムへの影響評価"&gt;最終確認とシステムへの影響評価
&lt;/h2&gt;&lt;p&gt;本移行により、AIエージェントからのバースト的なリクエストに対しても、キャッシュ層がボトルネックになることなく、安定したレスポンスを提供可能となりました。2026年5月31日現在の本番環境において、エラー率は 0.01% 未満に抑制されています。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;スループット&lt;/b&gt;: 従来の約3倍の処理能力を確保。&lt;/li&gt;
&lt;li&gt;&lt;b&gt;レイテンシ&lt;/b&gt;: スパイクが解消され、P99が2ms以下で安定。&lt;/li&gt;
&lt;li&gt;&lt;b&gt;リソース効率&lt;/b&gt;: マルチスレッド化により、マルチコアCPUの計算リソースを無駄なく活用。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;今後は、Valkey 8.0 の新機能であるベクトルインデックスのネイティブサポートについても検証を進め、AIエージェントの推論高速化に寄与する予定です。&lt;/p&gt;</description></item></channel></rss>