Memcached VS Redis - Vergleich der PHP Clients

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • In diesem Artikel werden die PHP Clients von Redis und Memcached gegeneinander verglichen.
    Benchmarks wurden jeweils mit folgendem Code durchgefürt. Wurden also
    explizit über den Apachen gejat.

    Source Code

    1. time `i=1; while [ $i -le 1000 ]; do wget -q -O /dev/null "http://localhost/Memcached/exec-set.php?argv[1]=$i&argv[2]=$i"; let i=$i+1; done`


    php5-memcached (1.0.0-1build1)

    Source Code

    1. $cluster = new Memcached();
    2. $cluster->addServers(array(
    3. array('localhost', 11211)
    4. ));
    5. $cluster->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE, true);
    6. $cluster->set($_GET['argv'][1], $_GET['argv'][2]);


    sets

    Source Code

    1. real 0m4.900s
    2. user 0m1.330s
    3. sys 0m2.460s


    gets

    Source Code

    1. real 0m4.882s
    2. user 0m1.180s
    3. sys 0m2.760s


    phpredis (1.0, 2010-09-17)

    Source Code

    1. $cluster = new Redis();
    2. $cluster->connect('127.0.0.1', 6379);
    3. $cluster->set($_GET['argv'][1], $_GET['argv'][2]);


    sets

    Source Code

    1. real 0m5.013s
    2. user 0m1.190s
    3. sys 0m2.440s


    gets

    Source Code

    1. real 0m4.396s
    2. user 0m1.250s
    3. sys 0m2.090s


    Predis (0.7.0-dev)

    Source Code

    1. require_once('Predis.php');
    2. $cluster = new Predis\Client(array(
    3. 'host' => '127.0.0.1',
    4. 'port' => 6379,
    5. 'database' => 15
    6. ));
    7. $cluster->set($_GET['argv'][1], $_GET['argv'][2]);


    sets

    Source Code

    1. real 0m12.884s
    2. user 0m0.960s
    3. sys 0m1.570s


    gets

    Source Code

    1. real 0m12.513s
    2. user 0m0.870s
    3. sys 0m1.770s


    Rediska (0.5.0)

    Source Code

    1. require_once('library/Rediska.php');
    2. $options = array('servers' => array(
    3. array(
    4. 'host' => '127.0.0.1',
    5. 'port' => 6379
    6. )
    7. ));
    8. $cluster = new Rediska($options);
    9. $cluster->set($_GET['argv'][1], $_GET['argv'][2]);
    Display All


    sets

    Source Code

    1. real 0m10.201s
    2. user 0m1.520s
    3. sys 0m3.400s


    gets

    Source Code

    1. real 0m10.218s
    2. user 0m1.940s
    3. sys 0m3.320s


    Ergebnisse

    Will man auf Performance gehen, kommt man nicht um die C-Implementierungen der Redis Clients herum. Diese sind in der Tat genauso schnell wie Memcached.
    Die PHP Implementierung sind trotz aktiviertem APC Caching mit großem Abstand langsamer. Sowohl Rediska als auch Predis bringen über 160 Klassen mit.
    Rediska nutzt dagegen ein besseres Autoloading - wohingegen Preis alle Klassen in den Speicher lädt.

    4,127 times viewed