X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=docs%2Flibmemcached_examples.rst;h=a43ee1a2a11f77a07cffd6614531359ab9e0d13b;hb=eff4858179d7883b92ab8682392357d104d5a8ab;hp=922ee143c0f54c28bf1ce712ad65c95c4ef131a1;hpb=8b33bb5adbffec6e701728c085e4606a2f7cd506;p=m6w6%2Flibmemcached diff --git a/docs/libmemcached_examples.rst b/docs/libmemcached_examples.rst index 922ee143..a43ee1a2 100644 --- a/docs/libmemcached_examples.rst +++ b/docs/libmemcached_examples.rst @@ -13,42 +13,63 @@ For full examples, test cases are found in tests/\*.c in the main distribution. These are always up to date, and are used for each test run of the library. ------------------------------- -Creating and Freeing structure ------------------------------- + +--------------------- +Connecting to servers +--------------------- .. code-block:: c - memcached_st *memc; - memcached_return_t rc; - - memc= memcached_create(NULL); - ...do stuff... + const char *config_string= "--SERVER=host10.example.com --SERVER=host11.example.com --SERVER=host10.example.com" + memcached_st *memc= memcached(config_string, strlen(config_string); + { + ... + } memcached_free(memc); -The above code would create a connection and then free the connection when -finished. +In the above code you create a :c:type:`memcached_st` object with three server +by making use of :c:func:`memcached_create`. ---------------------- -Connecting to servers ---------------------- +-------------------------- +Creating a pool of servers +-------------------------- .. code-block:: c - const char *config_string= "--SERVER=host10.example.com --SERVER=host11.example.com --SERVER=host10.example.com" - memcached_st *memc= memcached_create_with_options(config_string, strlen(config_string); - { - ... - } - memcached_free(memc); +Creating a pool of Servers:: + + const char *config_string= "--SERVER=host10.example.com --SERVER=host11.example.com --SERVER=host10.example.com"; + + memcached_pool_st* pool= memcached_pool(config_string, strlen(config_string)); + + memcached_return_t rc; + memcached_st *memc= memcached_pool_pop(pool, false, &rc); -In the above code you create a \ ``memcached_st``\ object with three server by making use of :manpage:`memcached_create_with_options(3)`. + .... do work + + /* + Release the memc_ptr that was pulled from the pool + */ + memcached_pool_push(pool, memc); + + /* + Destroy the pool. + */ + memcached_pool_destroy(pool); + + + +In the above code you create a :c:type:`memcached_pool_st` object with three +server by making use of :c:func:`memcached_pool()`. + +When :c:func:`memcached_pool_destroy()` all memory will be released that is associated +with the pool. ---------------------------- @@ -59,26 +80,17 @@ Adding a value to the server .. code-block:: c +Adding a value to the Server:: + char *key= "foo"; - char *value; - size_t value_length= 8191; - unsigned int x; - - value = (char*)malloc(value_length); - assert(value); - - for (x= 0; x < value_length; x++) - value[x] = (char) (x % 127); - - for (x= 0; x < 1; x++) + char *value= "value"; + + memcached_return_t rc= memcached_set(memc, key, strlen(key), value, value_length, (time_t)0, (uint32_t)0); + + if (rc != MEMCACHED_SUCCESS) { - rc= memcached_set(memc, key, strlen(key), - value, value_length, - (time_t)0, (uint32_t)0); - assert(rc == MEMCACHED_SUCCESS); + ... // handle failure } - - free(value); It is best practice to always look at the return value of any operation. @@ -97,14 +109,14 @@ Fetching multiple values size_t key_length[]= {5, 3, 4}; unsigned int x; uint32_t flags; - + char return_key[MEMCACHED_MAX_KEY]; size_t return_key_length; char *return_value; size_t return_value_length; - + rc= memcached_mget(memc, keys, key_length, 3); - + x= 0; while ((return_value= memcached_fetch(memc, return_key, &return_key_length, &return_value_length, &flags, &rc))) @@ -115,7 +127,7 @@ Fetching multiple values Notice that you freed values returned from memcached_fetch(). The define -\ ``MEMCACHED_MAX_KEY``\ is provided for usage. +:c:type:`MEMCACHED_MAX_KEY` is provided for usage. @@ -125,7 +137,7 @@ HOME To find out more information please check: -`https://launchpad.net/libmemcached `_ +`http://libmemcached.org/ `_ --------