memcached(その2)
今度はC言語で書いてみますlibmemcacheというライブラリを使用します。値の書き込み用putval.c#include #include #include #include #include #include #include "memcache.h"int main(int argc, char *argv[]) { struct memcache *mc = NULL; u_int32_t num_tests = 0, maxsize = 0; u_int32_t i, j; char *val, *ret; char *key; u_int32_t keylen; u_int32_t hash_pre, hash_post; int valsize; mc = mc_new(); mc_err_filter_del(MCM_ERR_LVL_INFO); mc_err_filter_del(MCM_ERR_LVL_NOTICE); if (mc == NULL) err(EX_OSERR, "Unable to allocate a new memcache object"); mc_server_add4(mc, "localhost:11211"); key=argv[1]; val=argv[2]; valsize=strlen(val); keylen = strlen(key);printf("key=%s,val=%s\n",key,val); mc_set(mc, key, keylen, val,valsize , 0, 0); mc_free(mc); return EX_OK;}cc putval.c -l memcache -l memcached -o putval./putval key1 val1値の読み込み用getval.c#include #include #include #include #include #include #include "memcache.h"int main(int argc, char *argv[]) { struct memcache *mc = NULL; u_int32_t num_tests = 0, maxsize = 0; u_int32_t i, j; char *val, *ret; char *key; u_int32_t keylen; u_int32_t hash_pre, hash_post; mc = mc_new(); mc_err_filter_del(MCM_ERR_LVL_INFO); mc_err_filter_del(MCM_ERR_LVL_NOTICE); if (mc == NULL) err(EX_OSERR, "Unable to allocate a new memcache object"); mc_server_add4(mc, "localhost:11211"); key=argv[1]; keylen = strlen(key); ret = mc_aget(mc, key, keylen); printf("%s\n",ret); free(ret); mc_free(mc); return EX_OK;}cc getval.c -l memcache -l memcached -o getval./getval key1