PhpRedis と Predis のパフォーマンス比較に関する議論は長い間行われてきました。この記事では、最も人気のあるフレームワーク Laravel をベースにしたこれらのライブラリのパフォーマンスを測定する方法を紹介します。
PhpRedis は、Redis ストレージと通信するための PHP 拡張機能です。 (関連する推奨事項: Redis チュートリアル )
Predis は純粋な PHP 上の PhpRedis の代替であり、デフォルトでは追加の C 拡張機能は必要ありませんが、オプションで phpirdis と組み合わせることができます。
私は、約 10,000 人のオンライン ユーザーを対象に、高負荷のプロジェクト コードを使用してこれら 2 つのライブラリをテストしました。
テスト環境:
オペレーティング システム: Ubuntu 18.04.2 LTS x86_64
CPU: Intel i7-6820HQ (8) @ 3.600GHz
メモリ: 32 gb
PHP: v7.2.15
Laravel: v5.7.25
MySQL: MySQL v5.7
Redis: v5.0.3
PhpRedis: v4.2.0
Predis: v1.1.1
スクリプトはデータベースからキャッシュを生成し、説得力のあるモデルを Redis に保存します。
デフォルトでは、Laravel は Redis のカスタム シリアライザーをサポートしていませんが、これを実現するために Laravel Lodash パッケージを使用しました。
結果:
Predis (serializer: php) Execution time: 00:05:53.0355 Cache storage used: 936.92MB — — — — — — — — — — — — — — — — — — Predis (serializer: igbinary)Execution time: 00:07:45.2460 Cache storage used: 342.66MB — — — — — — — — — — — — — — — — — Predis (serializer: igbinary, with ext-phpiredis)Execution time: 00:07:51.9046 Cache storage used: 342.66MB — — — — — — — — — — — — — — — — — PhpRedis (serializer: php)Execution time: 00:01:36.9863 Cache storage used: 936.75MB — — — — — — — — — — — — — — — — — PhpRedis (serializer: igbinary)Execution time: 00:01:37.3176 Cache storage used: 342.66MB
注:
Execution time:执行时间 Cache storage used:缓存存储
結論:
PhpRedis の速度は約×6回。 igbinary シリアライザーを使用すると、保存されるデータのサイズを約 3 分の 1 に削減できます。 Redis を別のマシンにインストールする場合、ネットワーク トラフィックを減らすと速度が大幅に向上します。
以上がPhpRedisとPredisの性能比較(例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。