Heim  >  Artikel  >  Datenbank  >  【转】LoadRunner使用Libmemcached与Memcached通讯_MySQL

【转】LoadRunner使用Libmemcached与Memcached通讯_MySQL

WBOY
WBOYOriginal
2016-06-01 13:51:441075Durchsuche

memcache

    在一包含业务的大数据量测试过程中,需要使用快速、大容量的数据库。

    可考虑的有关系型数据库或键值缓存数据库,建立集群。 LoadRunner操作Mysql实例:C语言篇已完成。

    今日来尝试在LoadRunner里操作Memcached,使用Libmemcached。

    首先下载源码:‍http://svn.coderepos.org/share/lang/c/libmemcached-win32

      然后按照说明进行编译,源码里还有测试代码和示例代码。编译方法有三种:

        一、使用‍mingw32进行编译,打开‍ Visual Studio Command Prompt:

‍    ‍    cd libmemcached-latest/libmemcached
‍    ‍    mingw32-make -f Makefile.w32

‍    ‍    cd ../cilents
‍    ‍    mingw32-make -f Makefile.w32

‍    ‍    cd ../../example
‍    ‍    mingw32-make -f Makefile.w32
    二、使用Visual Studio 2005或更高版本执行编译: ‍    ‍    libmemcached-latest/visualc/libmemcached.sln     三、使用nmake进行编译,‍打开‍ Visual Studio Command Prompt: ‍    ‍    cd libmemcached-latest/libmemcached
‍    ‍    nmake -f Makefile.msc

‍‍    ‍    cd ../cilents
‍    ‍    nmake -f Makefile.msc

‍    ‍    cd ../../example
‍‍    ‍    nmake -f Makefile.msc     编译过程将生成memcached.dll,供LoadRunner扩展调用。如下图: ‍

源码:

#define SERVER_NAME "192.168.223.106"
#define SERVER_PORT 11211
Action(){ //先加载libmemcached.dll
    int memc;
    int rc;
    int value_length=0;
    intf lags=0;
    int result;
    long int num;
    char* key="name";
    char* value="higkoo";
    char* discription="Performance";

    memc=memcached_create(NULL);
    rc=memcached_server_add(memc,SERVER_NAME,SERVER_PORT);
    lr_output_message("server add: %s/n",memcached_strerror(memc,rc));

     rc=memcached_set(memc,key,strlen(key),value,strlen(value),0,0);
     lr_output_message("set '%s' to '%s': %s/n",key,value,memcached_strerror(memc,rc));

    result=memcached_get(memc,key,strlen(key),&value_length,&flags,&rc);
    lr_output_message("get '%s': %s/n",key,memcached_strerror(memc,rc));
    lr_output_message("%s = %s/n",key,result);

    rc=memcached_behavior_set(memc,0,1);
    lr_output_message("behavior set to non-block: %s/n",memcached_strerror(memc,rc));

    result=memcached_get(memc,key,strlen(key),&value_length,&flags,&rc);
    lr_output_message("get '%s': %s/n",key,memcached_strerror(memc,rc));
    lr_output_message("%s = %s/n",key,value);

    rc=memcached_set(memc,key,strlen(key),discription,strlen(discription),0,0);
    lr_output_message("set '%s' to '%s': %s/n",key,discription,memcached_strerror(memc,rc));

    rc=memcached_increment(memc,key,strlen(key),1,&num);
    lr_output_message("incr '%s': %s/n",key,memcached_strerror(memc,rc));
    rc=memcached_increment(memc,key,strlen(key),1,&num);
    lr_output_message("incr '%s': %s/n",key,memcached_strerror(memc,rc));
    rc=memcached_increment(memc,key,strlen(key),1,&num);
    lr_output_message("incr '%s': %s/n",key,memcached_strerror(memc,rc));
    rc=memcached_decrement(memc,key,strlen(key),1,&num);
    lr_output_message("decr '%s': %s/n",key,memcached_strerror(memc,rc));

    result=memcached_get(memc,key,strlen(key),&value_length,&flags,&rc);
    lr_output_message("get '%s': %s/n",key,memcached_strerror(memc,rc));
    lr_output_message("test = %s/n",value);

    rc=memcached_delete(memc,key,strlen(key),0);
    lr_output_message("delete '%s': %s/n",key,memcached_strerror(memc,rc));

    result=memcached_get(memc,key,strlen(key),&value_length,&flags,&rc);
    lr_output_message("get(was deleted) '%s': %s/n",key,memcached_strerror(memc,rc));

    memcached_free(memc);
}

...

绿色通道:好文要顶关注我收藏该文与我联系
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn