phpredis 是使用 c 写的 php 扩展,predis 是使用纯 php 写的。
在性能上的区别当然是扩展更好一些,但其实这两个实现还有更大的区别,就是连接的保持。
phpredis 在扩展中使用 c 可以保持 php-fpm 到 redis 的长连接,所以一个 php-fpm 进程上的多个请求是复用同一个连接的。phpredis 的 pconnect 就是长连接方式。
predis 是使用 php 的 socket 来连接 redis,所以需要每次请求连接 redis。
可以看出 laravel 的官方是推荐使用 predis 的,因为纯 php 实现的原因,只需要 composer 即可安装,非常符合 laravel 便捷的思想。
phpredis 和 predis 的性能差距没有跨数量级,当然要考虑具体业务,如果业务非常依赖 redis,并且单机 qps 需要支持的比较大,建议使用 phpredis。如果你只是使用 laravel 使用 redis 实现规模小的业务,建议不用改变 predis。