Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

libmemcached (3libmemcached)

Name

libmemcached - Introducing the C Client Library for memcached

Synopsis

#include <libmemcached/memcached.h>

Compile and link with -lmemcached


----



libMemcached  is  an open source C/C++ client library and tools for the
memcached server (http://memcached.org/). It has been  designed  to  be
light  on  memory usage, thread safe, and provide full access to server
side methods.

libMemcached was designed to provide the greatest number of options  to
use Memcached. Some of the features provided:

1. Asynchronous and Synchronous Transport Support.

2. Consistent Hashing and Distribution.

3. Tunable Hashing algorithm to match keys.

4. Access to large object support.

5. Local replication.

6. A complete reference guide and documentation to the API.

7. Tools to Manage your Memcached networks.

Description

libmemcached                                       LIBMEMCACHED(3libmemcached)



NAME
       libmemcached - Introducing the C Client Library for memcached

SYNOPSIS
       #include <libmemcached/memcached.h>

       Compile and link with -lmemcached


                                        ----



       libMemcached  is  an open source C/C++ client library and tools for the
       memcached server (http://memcached.org/). It has been  designed  to  be
       light  on  memory usage, thread safe, and provide full access to server
       side methods.

       libMemcached was designed to provide the greatest number of options  to
       use Memcached. Some of the features provided:

       1. Asynchronous and Synchronous Transport Support.

       2. Consistent Hashing and Distribution.

       3. Tunable Hashing algorithm to match keys.

       4. Access to large object support.

       5. Local replication.

       6. A complete reference guide and documentation to the API.

       7. Tools to Manage your Memcached networks.

DESCRIPTION
       "Memcached  is  a  high-performance,  distributed memory object caching
       system, generic in nature, but intended for use in speeding up  dynamic
       web applications by alleviating database load." http://memcached.org/

       libmemcached  is  a small, thread-safe client library for the memcached
       protocol. The code has all been written  to  allow  for  both  web  and
       embedded  usage.  It handles the work behind routing individual keys to
       specific servers specified by the developer  (and  values  are  matched
       based on server order as supplied by the user). It implements a modular
       and consistent method of object distribution.

       There are multiple implemented routing and  hashing  methods.  See  the
       memcached_behavior_set() manpage for more information.

       All  operations  are performed against a memcached_st structure.  These
       structures can either be dynamically allocated or statically  allocated
       and then initialized by memcached_create(). Functions have been written
       in order to encapsulate the memcached_st. It is  not  recommended  that
       you operate directly against the structure.

       Nearly all functions return a memcached_return_t value.  This value can
       be translated to a printable string with memcached_strerror.

       Objects are stored on servers by hashing keys. The hash value maps  the
       key  to  a  particular  server. All clients understand how this hashing
       works, so it is possibly to reliably both push data  to  a  server  and
       retrieve data from a server.

       Group  keys  can  be  optionally  used  to  group  sets of objects with
       servers.

       Namespaces are supported, and can be used to partition caches  so  that
       multiple applications can use the same memcached servers.

       memcached_st  structures  are thread-safe, but each thread must contain
       its own structure (that is, if you want to share  these  among  threads
       you  must  provide  your  own locking). No global variables are used in
       this library.

       If you are working with GNU autotools you will want to add the  follow-
       ing  to  your COPYING to properly include libmemcached in your applica-
       tion.

       PKG_CHECK_MODULES(DEPS, libmemcached  >=  0.8.0)  AC_SUBST(DEPS_CFLAGS)
       AC_SUBST(DEPS_LIBS)

       Some  features  of the library must be enabled through memcached_behav-
       ior_set().

       Hope you enjoy it!

CONSTANTS
       A number of constants have been provided for in the library.

       MEMCACHED_DEFAULT_PORT
              The default port used by memcached(3).

       MEMCACHED_MAX_KEY
              Default maximum size of a key (which includes the null pointer).
              Master  keys  have  no limit, this only applies to keys used for
              storage.

       MEMCACHED_MAX_KEY
              Default size of key (which includes the null pointer).

       MEMCACHED_STRIDE
              This is the "stride" used in the consistent  hash  used  between
              replicas.

       MEMCACHED_MAX_HOST_LENGTH
              Maximum allowed size of the hostname.

       LIBMEMCACHED_VERSION_STRING
              String value of libmemcached version such as "1.23.4"

       LIBMEMCACHED_VERSION_HEX
              Hex  value  of the version number. "0x00048000" This can be used
              for comparing versions based on number.

       MEMCACHED_PREFIX_KEY_MAX_SIZE
              Maximum length allowed for namespacing of a key.

THREADS AND PROCESSES
       When using threads or forked processes it  is  important  to  keep  one
       instance  of  memcached_st per process or thread. Without creating your
       own locking structures you can not share a  single  memcached_st.  How-
       ever,  you can call memcached_quit() on a memcached_st and then use the
       resulting cloned structure.

HOME
       To find out more information please check: http://libmemcached.org/


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+----------------------+
       |ATTRIBUTE TYPE |   ATTRIBUTE VALUE    |
       +---------------+----------------------+
       |Availability   | library/libmemcached |
       +---------------+----------------------+
       |Stability      | Uncommitted          |
       +---------------+----------------------+

SEE ALSO
       memcached(1)   libmemcached_examples(3)    libmemcached(1)    memcat(1)
       memcp(1)  memflush(1) memrm(1) memslap(1) memstat(1) memcached_fetch(3)
       memcached_replace(3)  memcached_server_list_free(3)  libmemcached_exam-
       ples(3)  memcached_clone(3)  memcached_free(3)  memcached_server_add(3)
       memcached_server_push(3)   memcached_add(3)    memcached_get(3)    mem-
       cached_server_count(3)  memcached_create(3) memcached_increment(3) mem-
       cached_server_list(3)  memcached_set(3)   memcached_decrement(3)   mem-
       cached_mget(3)   memcached_server_list_append(3)  memcached_strerror(3)
       memcached_delete(3)  memcached_quit(3)   memcached_server_list_count(3)
       memcached_verbosity(3)     memcached_server_add_unix_socket(3)     mem-
       cached_result_create(3)          memcached_result_free(3)          mem-
       cached_result_key_value(3)      memcached_result_key_length(3)     mem-
       cached_result_value(3)          memcached_result_length(3)         mem-
       cached_result_flags(3)   memcached_result_cas(3) memcached_result_st(3)
       memcached_append(3)   memcached_prepend(3)    memcached_fetch_result(3)
       memerror(1)   memcached_get_by_key(3)   memcached_mget_by_key(3)   mem-
       cached_delete_by_key(3)   memcached_fetch_execute(3)    memcached_call-
       back_get(3)    memcached_callback_set(3)    memcached_version(3)   mem-
       cached_lib_version(3)  memcached_result_set_value(3)  memcached_dump(3)
       memdump(1)     memcached_set_memory_allocators(3)    memcached_get_mem-
       ory_allocators(3) memcached_get_user_data(3) memcached_set_user_data(3)

AUTHOR
       Brian Aker

COPYRIGHT
       2011-2013, Brian Aker DataDifferential, http://datadifferential.com/



NOTES
       Source code for open source software components in Oracle  Solaris  can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This    software    was    built    from    source     available     at
       https://github.com/oracle/solaris-userland.    The  original  community
       source    was    downloaded     from      https://launchpad.net/libmem-
       cached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz.

       Further information about this software can be found on the open source
       community website at http://libmemcached.org/libMemcached.html.



1.0.18                         February 09, 2014
                                                   LIBMEMCACHED(3libmemcached)