X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=docs%2Flibmemcached.rst;h=23ec93b49a9974e6b0b7646d00b96a6f747d1a62;hb=a6c3e3a3d04f379b1480c8c88a8eae17e54b1449;hp=96fe94e7b2203725c5434b7da2c05a0f8839c2cd;hpb=1c5912a525fe2b06a185f97bb078ca6f782da3a4;p=awesomized%2Flibmemcached diff --git a/docs/libmemcached.rst b/docs/libmemcached.rst index 96fe94e7..23ec93b4 100644 --- a/docs/libmemcached.rst +++ b/docs/libmemcached.rst @@ -1,36 +1,30 @@ -.. highlight:: perl +============================================== +Introducing the C Client Library for memcached +============================================== - -libmemcached -************ - - -Client library for memcached - - -******* -LIBRARY -******* - - -C Client Library for memcached (libmemcached, -lmemcached) - - -******** +-------- SYNOPSIS -******** - +-------- +#include -.. code-block:: perl +Compile and link with -lmemcached - #include +libMemcached is an open source C/C++ client library and tools for the memcached server (http://danga.com/memcached). 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 @@ -38,14 +32,14 @@ system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load." `http://danga.com/memcached/ `_ \ **libmemcached**\ is a small, thread-safe client library for the -memcached protocol. The code has all been written with an eye to allow +memcached protocol. The code has all been written to allow for both web and embedded usage. It handles the work behind routing -particular keys to specific servers that you specify (and values are -matched based on server order as supplied by you). It implements both -a modula and consistent method of object distribution. +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. +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 @@ -56,8 +50,11 @@ 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(3). -Partitioning based on keys is supported in the library. Using the key partioning -functions it is possible to group sets of object onto servers. +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 @@ -65,7 +62,7 @@ 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 configure.ac to properly include libmemcached in your application. +your COPYING to properly include libmemcached in your application. PKG_CHECK_MODULES(DEPS, libmemcached >= 0.8.0) AC_SUBST(DEPS_CFLAGS) @@ -76,9 +73,9 @@ 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. @@ -126,39 +123,61 @@ A number of constants have been provided for in the library. -********************* +--------------------- THREADS AND PROCESSES -********************* +--------------------- -When using threads or forked processes it is important to keep an instance +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``\ . You can though call +structures you can not share a single \ ``memcached_st``\ . However, you can call memcached_quit(3) on a \ ``memcached_st``\ and then use the resulting cloned structure. -**** +---- HOME -**** +---- To find out more information please check: -`https://launchpad.net/libmemcached `_ - - -****** -AUTHOR -****** - +`http://libmemcached.org/ `_ -Brian Aker, - -******** +-------- 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_servers_parse(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) - +-------- + + +:manpage:`memcached(1)` :manpage:`libmemcached_examples(3)` +:manpage:`libmemcached(1)` :manpage:`memcat(1)` :manpage:`memcp(1)` +:manpage:`memflush(1)` :manpage:`memrm(1)` :manpage:`memslap(1)` +:manpage:`memstat(1)` :manpage:`memcached_fetch(3)` +:manpage:`memcached_replace(3)` :manpage:`memcached_server_list_free(3)` +:manpage:`libmemcached_examples(3)` :manpage:`memcached_clone(3)` +:manpage:`memcached_free(3)` :manpage:`memcached_server_add(3)` +:manpage:`memcached_server_push(3)` :manpage:`memcached_add(3)` +:manpage:`memcached_get(3)` :manpage:`memcached_server_count(3)` +:manpage:`memcached_create(3)` :manpage:`memcached_increment(3)` +:manpage:`memcached_server_list(3)` :manpage:`memcached_set(3)` +:manpage:`memcached_decrement(3)` :manpage:`memcached_mget(3)` +:manpage:`memcached_server_list_append(3)` :manpage:`memcached_strerror(3)` +:manpage:`memcached_delete(3)` :manpage:`memcached_quit(3)` +:manpage:`memcached_server_list_count(3)` :manpage:`memcached_verbosity(3)` +:manpage:`memcached_server_add_unix_socket(3)` +:manpage:`memcached_result_create(3)` :manpage:`memcached_result_free(3)` +:manpage:`memcached_result_key_value(3)` +:manpage:`memcached_result_key_length(3)` +:manpage:`memcached_result_value(3)` :manpage:`memcached_result_length(3)` +:manpage:`memcached_result_flags(3)` :manpage:`memcached_result_cas(3)` +:manpage:`memcached_result_st(3)` :manpage:`memcached_append(3)` +:manpage:`memcached_prepend(3)` :manpage:`memcached_fetch_result(3)` +:manpage:`memerror(1)` :manpage:`memcached_get_by_key(3)` +:manpage:`memcached_mget_by_key(3)` :manpage:`memcached_delete_by_key(3)` +:manpage:`memcached_fetch_execute(3)` :manpage:`memcached_callback_get(3)` +:manpage:`memcached_callback_set(3)` :manpage:`memcached_version(3)` +:manpage:`memcached_lib_version(3)` :manpage:`memcached_result_set_value(3)` +:manpage:`memcached_dump(3)` :manpage:`memdump(1)` +:manpage:`memcached_set_memory_allocators(3)` +:manpage:`memcached_get_memory_allocators(3)` +:manpage:`memcached_get_user_data(3)` :manpage:`memcached_set_user_data(3)`