[+/-]
The libmemcached library provides both C and
C++ interfaces to memcached and is also the
basis for a number of different additional API implementations,
including Perl, Python and Ruby. Understanding the core
libmemcached functions can help when using
these other interfaces.
The C library is the most comprehensive interface library for
memcached and provides functions and
operational systems not always exposed in interfaces not based
on the libmemcached library.
The different functions can be divided up according to their basic operation. In addition to functions that interface to the core API, a number of utility functions provide extended functionality, such as appending and prepending data.
To build and install libmemcached, download
the libmemcached package, run
configure, and then build and install:
shell> tar xjf libmemcached-0.21.tar.gz shell> cd libmemcached-0.21 shell> ./configure shell> make shell> make install
On many Linux operating systems, you can install the
corresponding libmemcached package through
the usual yum, apt-get, or
similar commands.
To build an application that uses the library, first set the
list of servers. Either directly manipulate the servers
configured within the main memcached_st
structure, or separately populate a list of servers, and then
add this list to the memcached_st structure.
The latter method is used in the following example. Once the
server list has been set, you can call the functions to store or
retrieve data. A simple application for setting a preset value
to localhost is provided here:
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <libmemcached/memcached.h>
int main(int argc, char *argv[])
{
memcached_server_st *servers = NULL;
memcached_st *memc;
memcached_return rc;
char *key= "keystring";
char *value= "keyvalue";
memcached_server_st *memcached_servers_parse (char *server_strings);
memc= memcached_create(NULL);
servers= memcached_server_list_append(servers, "localhost", 11211, &rc);
rc= memcached_server_push(memc, servers);
if (rc == MEMCACHED_SUCCESS)
fprintf(stderr,"Added server successfully\n");
else
fprintf(stderr,"Couldn't add server: %s\n",memcached_strerror(memc, rc));
rc= memcached_set(memc, key, strlen(key), value, strlen(value), (time_t)0, (uint32_t)0);
if (rc == MEMCACHED_SUCCESS)
fprintf(stderr,"Key stored successfully\n");
else
fprintf(stderr,"Couldn't store key: %s\n",memcached_strerror(memc, rc));
return 0;
}
To test the success of an operation, use the return value, or
populated result code, for a given function. The value is always
set to MEMCACHED_SUCCESS if the operation
succeeded. In the event of a failure, use the
memcached_strerror() function to translate
the result code into a printable string.
To build the application, specify the
memcached library:
shell> gcc -o memc_basic memc_basic.c -lmemcached
Running the above sample application, after starting a memcached server, should return a success message:
shell> memc_basic Added server successfully Key stored successfully

User Comments
In the memc_basic.c, the line "memcached_server_st *memcached_servers_parse(char *server_string)" makes gcc complain about duplicate declaration of the function. Replacing that line with "servers = memcached_servers_parse("localhost");" stops the compiler error and, makes the program run smoothly.
Add your own comment.