Il y a eu une longue discussion sur la comparaison des performances entre PhpRedis et Predis. Dans cet article, je vais vous présenter comment mesurer les performances de ces bibliothèques basées sur le framework le plus populaire Laravel.
PhpRedis est une extension PHP permettant de communiquer avec le stockage Redis. (Recommandations associées : Tutoriel Redis)
Predis est une alternative à PhpRedis sur PHP pur qui ne nécessite aucune extension C supplémentaire par défaut, mais peut éventuellement être associée à phpiredis.
J'ai testé ces deux bibliothèques en utilisant du code de projet à forte charge avec environ 10 000 utilisateurs en ligne.
Environnement de test :
Système d'exploitation : Ubuntu 18.04.2 LTS x86_64
CPU : Intel i7-6820HQ (8) à 3,600 GHz
Mémoire : 32 Go
PHP : v7.2.15
Laravel : v5.7.25
MySQL : MySQL v5.7
Redis : v5.0.3
PhpRedis : v4.2.0
Predis : v1.1.1
Le script génère un cache à partir de la base de données et stocke le modèle convaincant dans Redis.
Par défaut, Laravel ne prend pas en charge les sérialiseurs personnalisés pour Redis, mais j'ai utilisé le package Laravel Lodash pour y parvenir.
Résultat :
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
Remarque :
Execution time:执行时间 Cache storage used:缓存存储
Conclusion :
PhpRedis la vitesse est d'environ x6 fois. L'utilisation du sérialiseur igbinary peut réduire la taille des données stockées d'environ 3 fois. Si vous installez Redis sur une autre machine, la réduction du trafic réseau accélérera considérablement les choses.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!