predis好神奇啊,居然不用扩展就可以直接连接redis,他底层是用什么实现的?(我看了一下他的源代码,根本看不懂啊),听说phpredis是扩展实现所以性能比predis更高吗?
但是Laravel官方却推荐的是predis,请问一下他们之间的区别是什么?性能差距大不大?
predis好神奇啊,居然不用扩展就可以直接连接redis,他底层是用什么实现的?(我看了一下他的源代码,根本看不懂啊),听说phpredis是扩展实现所以性能比predis更高吗?
但是Laravel官方却推荐的是predis,请问一下他们之间的区别是什么?性能差距大不大?
如果你关注过国人开发的SSDB,那你应该会发现SSDB官方提供的PHP客户端也是用PHP实现的:
https://github.com/ideawu/ssdb/blob/master/api/php/SSDB.php
$this->sock = @stream_socket_client("$host:$port", $errno, $errstr, $timeout_f);
同理,predis也是一个用PHP实现的Redis客户端:
https://github.com/nrk/predis/blob/v1.1/src/Connection/StreamConnection.php
$resource = @stream_socket_client($address, $errno, $errstr, $timeout, $flags)
PHP自身也是支持socket编程的,你可以看下:
http://php.net/manual/zh/ref.sockets.php
http://php.net/manual/zh/ref.stream.php
http://pecl.php.net/package/swoole
C实现的客户端phpredis有个好处是能实现PHP-FPM到Redis的持久连接,这时PHP实现的predis比不了的,不过PHP实现的predis好处是只依赖PHP解释器,依赖性更小,部署更方便,轻松就能兼容PHP7.
predis,是PHP版本写的redis client,采用socket连接
php extension redis是PHP原生扩展,C写的
由于没有进行过大数据压测,不能准确告诉你性能差异。但基本上扩展redis肯定比predis更好。
Laravel推荐用predis,主要是当心一些主机没有支持redis吧。尽量少依赖C扩展,这样才能发挥PHP普及众生的思想。
phpredis 底层是c 而且是官方扩展
而predis是用php写的
安装道理讲 从性能上phpredis更好!
官方提供的PHP客户端列表如下:
图片描述
官方提供的PHP客户端列表如下:
4 回答13.2k 阅读✓ 已解决
5 回答7.7k 阅读✓ 已解决
4 回答2.3k 阅读
1 回答1.5k 阅读✓ 已解决
1 回答950 阅读✓ 已解决
3 回答1.2k 阅读
1 回答1.4k 阅读
——摘自《redis入门指南》第五章