2014年01月17日 星期五 09:59
APR的Memcache模块提供了与Memcached服务交互的API,我认为这一组API比原生的libmemcache和libmemcached更容易使用。代码示例如下:
#include <stdio.h> #include <apr.h> #include <apr_pools.h> #include <apr_errno.h> #include <apr_strings.h> #include <apr_memcache.h> void apr_err(const char *s, apr_status_t rv) { char buf[120]; fprintf(stderr, "%s: %s (%d)\n", s, apr_strerror(rv, buf, sizeof buf), rv); } int main(int argc,char **argv) { apr_initialize(); apr_pool_t *pool; apr_pool_create(&pool,NULL); apr_status_t st; apr_memcache_t *mc; st=apr_memcache_create(pool,1,0,&mc); if(st != APR_SUCCESS) { apr_err("apr_memcache_create()",st); return st; } apr_memcache_server_t *server; apr_memcache_server_create(pool,"localhost",11211,1,3,5,120,&server); apr_memcache_add_server(mc,server); char *version; apr_memcache_version(server,pool,&version); printf("version : %s\n",version); char *key="laomeng"; char *value="laomeng188@163.com"; apr_size_t len=strlen(value) + 1; st=apr_memcache_set(mc,key,value,len,5,0); if(st != APR_SUCCESS) { apr_err("apr_memcache_set()",st); return st; } char *data=NULL; apr_size_t dsize; apr_uint16_t flags; for(int i=0;i<20;i++) { st=apr_memcache_getp(mc,pool,key,&data,&dsize,&flags); if(st != APR_SUCCESS) { apr_err("apr_memcache_getp()",st); break; } printf("data : %s\n",data); apr_sleep(1000000); } apr_pool_destroy(pool); apr_terminate(); return 0; }
参考资料:
http://apr.apache.org/docs/apr-util/1.3/group___a_p_r___util___m_c.html
Zeuux © 2024
京ICP备05028076号