關於PhpRedis和Predis之間效能比較的討論由來已久。這篇文章我將為大家結合最受歡迎的框架Laravel來介紹衡量這些函式庫的效能。
PhpRedis是一個PHP擴展,用於與Redis儲存進行通訊。 (相關建議:Redis教學)
Predis是純PHP上PhpRedis的替代方案,預設不需要任何額外的C擴展,但可以選擇與phpiredis配對。
我使用高負載項目程式碼測試了這兩個庫,線上用戶約為10K。
測試環境:
作業系統: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的速度大約是x6倍。使用igbinary序列化器可以將儲存的資料大小減少約3倍。如果將Redis安裝在不同的電腦上,那麼減少網路流量將大大加快速度。
以上是PhpRedis與Predis之間的效能比較(實例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!