Predis 和 PhpRedis

前些日子,为启用 laravel,引出来使用 Predis 还是 PhpRedis 问题;这两者都是 PHP client for Redis;

PhpRedis
  • 作为 php 的一个扩展存在;
  • 编译出 redis.so,放到 extension_dir 下;
  • 在 php.ini 启用(enable the module in the PHP config file);
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/"
extension = "redis.so"
  • C 编写的,速度快、内存小;
  • 努力实现每一个 redis 命令;
  • 可以作为 PHP Session handler
    phpredis can be used to store PHP sessions;
Predis
  • 纯 php 实现,速度慢、内存大;
  • 一个简单的对 redis 命令的包装(wrap);
  • 兼容性和弹性更好,支持几乎所有 redis 特性;
  • FAQ about performances
选用哪个?
  • 如果 redis 的 client 和 server 在一台机器,则由于没有网络时延,PhpRedis 的确快很多;
    如果不在同一台机器,则网络时延的因素对速度的影响是一个大头,Predis 的慢点就不是问题了;
  • pipeline 技术 对于减少网络时延很有效;
<?php
 // http://odino.org/redis-slow-with-php-think-again/
  $start = microtime(true);
  for ($j = 0; $j < 10000; $j++) {
    $key = sprintf("key:%05d", $j);
    $redis->pipeline();

    /* GET or SET */
    if (rand() % 2 == 0) {
      $redis->set($key, rand());
    } else {
      $redis->get($key);
    }
  }
两者不能兼容共存?

-?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,322评论 19 139
  • 更改ip和dnsVi /etc/sysconfig/network-scripts/ifcfg-eth0vi /...
    Xwei_阅读 5,852评论 0 3
  • 1 Redis介绍1.1 什么是NoSql为了解决高并发、高可扩展、高可用、大数据存储问题而产生的数据库解决方...
    克鲁德李阅读 10,764评论 0 36
  • 孩子所在的乔伟幼儿园其中一家长兴致起,写了一首记录自己的孩子翼炀的诗词,带你来看下。 感恩时节,留有习作,一时失察...
    黄秋娴阅读 1,248评论 0 0
  • 秋刀鱼之味这部影片是由小津安二朗指导的家庭剧情片。讲述了主角平山在妻子去世之后和2儿1女的生活。 大儿子平山宏一已...
    cakekiko阅读 5,521评论 0 0