美文网首页
phpredis与predis的区别.md

phpredis与predis的区别.md

作者: 雨辰林 | 来源:发表于2020-06-28 21:21 被阅读0次

    Redis官方推荐的PHP客户端是Predis和phpredis2

    实现的方式不同

    • phpredis是用c语言实现的php扩展
    • predis是一个纯PHP实现

    php支持的版本不同

    • predis只支持php5.3以上版本、
    • phpredis不存在版本问题

    性能的比较

    环境:本地环境

    predis phpredis
    18900 SET / sec,使用12个字节作为键和值 29000 SET / sec,使用12个字节作为键和值
    21000 GET / sec,同时检索非常相同的值 30000 GET / sec,同时检索非常相同的值
    0.210秒,使用_KEYS * _提取30000个密钥 0.037秒,使用_KEYS * _提取30000个密钥

    备注: 虽然Predis的性能逊于phpredis,但是除非执行大量Redis命令,否则很难区分二者的性能。而且实际应用中执行Re dis命令的开销更多在网络传输上,单纯注重客户端的性能意义不 大。读者在开发时可以根据自己的项目需要来权衡使用哪个客户端。

    Predis是一个纯PHP实现:不够快!

    这确实取决于实际情况,但是大多数时候答案是:是的,它足够快。我会给你一个
    几个简单的数字以及一个使用单个客户端的简单测试,并由PHP 5.5.6执行
    针对在Intel Q6600的Ubuntu 13.10下运行的Redis 2.8本地实例:

    21000 SET / sec,使用12个字节的键和值。
    21000 GET / sec,同时检索非常相同的值。
    0.130秒,使用_KEYS * _提取30000个密钥。
    

    它与不错的C扩展[phpredis](http://github.com/nicolasff/phpredis)相比如何?
    为Redis提供有效的客户?

    30100 SET / sec,使用12个字节作为键和值
    29400 GET / sec,同时检索非常相同的值
    0.035秒,使用“ KEYS *”“提取30000个密钥。
    

    phpredis 似乎快得多!好吧,我们正在将C扩展名与纯PHP库进行比较,因此
    较低的数字是可以预期的,但是它们有一个根本的缺陷:这真的是您的情况吗
    要在您的应用程序中使用Redis?您真的要使用以下命令发送数千个命令吗?
    使用单个客户端实例在每个页面请求上进行for循环?如果是这样,那么我想你可能是
    做错了事。另外,如果您需要“设置”或“获取”多个键,则应该使用
    MSET和MGET之类的命令。您还可以使用流水线来获得更多性能
    可以使用技术。

    还有一件事:我们通过连接本地主机实例测试了Predis的开销
    的Redis,但是当我们通过连接到远程Redis进入物理网络时,这些数字如何变化
    实例?

    使用Predis:
    3200 SET / sec,密钥和值均使用12个字节
    3200 GET /秒,同时检索非常相同的值
    0.132秒,使用“ KEYS *”提取30000个密钥。
    
    使用phpredis:
    3500 SET / sec,使用12个字节的键和值
    3500 GET /秒,同时检索非常相同的值
    0.045秒以使用“ KEYS *”提取30000个密钥。
    

    到那里,您得到的平均数几乎相同,原因很简单:网络延迟是
    真正的性能杀手,您几乎无法做任何事情。作为免责声明,请记住
    我们正在衡量客户端库实施的开销以及网络的影响
    往返时间,因此我们并没有真正衡量Redis的速度。 Redis最耀眼
    客户并发请求!另外,实际表现应根据
    您的应用程序将使用Redis。

    客户端安装地址

    参考

    • predis的FAQ.md
    • redis入门指南-第五章

    相关文章

      网友评论

          本文标题:phpredis与predis的区别.md

          本文链接:https://www.haomeiwen.com/subject/jfjgfktx.html