首页  >  文章  >  数据库  >  【转】LoadRunner使用Libmemcached与Memcached通讯_MySQL

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

WBOY
WBOY原创
2016-06-01 13:51:441075浏览

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);
}

...

绿色通道:好文要顶关注我收藏该文与我联系
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn