-
-

Introducing the C Client Library for memcached¶

+
+

C/C++ Client Library for memcached¶

SYNOPSIS¶

-

#include <libmemcached/memcached.h>

-

Compile and link with -lmemcached

+
+
#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:

+

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. -
  3. Consistent Hashing and Distribution.

  4. -
  5. Tunable Hashing algorithm to match keys.

  6. -
  7. Access to large object support.

  8. -
  9. Local replication.

  10. -
  11. A complete reference guide and documentation to the API.

  12. -
  13. Tools to Manage your Memcached networks.

  14. +
  15. Asynchronous and Synchronous Transport Support.
  16. +
  17. Consistent Hashing and Distribution.
  18. +
  19. Tunable Hashing algorithm to match keys.
  20. +
  21. Access to large object support.
  22. +
  23. Local replication.
  24. +
  25. A complete reference guide and documentation to the API.
  26. +
  27. 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.

+

"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.

+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 following to -your COPYING to properly include libmemcached in your application.

-

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_behavior_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_BUFFER¶
-

Default size of read/write buffers (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.

-
- +

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

+

Some features of the library must be enabled through memcached_behavior_set().

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. However, -you can call memcached_quit() on a memcached_st and then use the resulting cloned structure.

+

No global variables are used in this library.

+

memcached_st structures are thread-safe, but 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. However, 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/

+
+

SYSTEMTAP¶

+

libmemcached can be built to support Systemtap on Linux when enabled at +compile time.

+

Please see stap(1) and dtrace(1) for more information +about Systemtap.

+
+
+

CLIENT PROGRAMS¶

+

libmemcached comes with a few useful client programs:

+ +
+

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_examples(3) memcached_clone(3) -memcached_free(3) memcached_server_add(3) -memcached_server_push(3) memcached_add(3) -memcached_get(3) memcached_server_count(3) -memcached_create(3) memcached_increment(3) -memcached_server_list(3) memcached_set(3) -memcached_decrement(3) memcached_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) -memcached_result_create(3) memcached_result_free(3) -memcached_result_key_value(3) -memcached_result_key_length(3) -memcached_result_value(3) memcached_result_length(3) -memcached_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) memcached_delete_by_key(3) -memcached_fetch_execute(3) memcached_callback_get(3) -memcached_callback_set(3) memcached_version(3) -memcached_lib_version(3) memcached_result_set_value(3) -memcached_dump(3) memdump(1) -memcached_set_memory_allocators(3) -memcached_get_memory_allocators(3) -memcached_get_user_data(3) memcached_set_user_data(3)

+
@@ -850,10 +275,10 @@ you can call - + - +
@@ -862,7 +287,7 @@ you can call

- © Copyright 2011-2020 Brian Aker, Michael Wallner + © Copyright