diff options
author | Continuous Integration <ci@tangent.org> | 2014-02-16 03:31:37 -0800 |
---|---|---|
committer | Continuous Integration <ci@tangent.org> | 2014-02-16 03:31:37 -0800 |
commit | b163cbc1e82ea834b66e3b4c1e8070394ccb506d (patch) | |
tree | 999734df2e2c288d6726af31f9336beadb2a781a /docs/source/libmemcached_examples.rst | |
parent | 8541a9863cffad457f4d583af6a6c3613250193d (diff) | |
parent | 37deb7fa75a0b3fbea4d58c032446213f0d5a02a (diff) | |
download | libmemcached-trunk.tar.gz |
Diffstat (limited to 'docs/source/libmemcached_examples.rst')
-rw-r--r-- | docs/source/libmemcached_examples.rst | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/docs/source/libmemcached_examples.rst b/docs/source/libmemcached_examples.rst new file mode 100644 index 00000000..a43ee1a2 --- /dev/null +++ b/docs/source/libmemcached_examples.rst @@ -0,0 +1,149 @@ +======== +Examples +======== + +Examples for libmemcached + +----------- +DESCRIPTION +----------- + + +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. + + +--------------------- +Connecting to servers +--------------------- + + +.. code-block:: c + + 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); + + +In the above code you create a :c:type:`memcached_st` object with three server +by making use of :c:func:`memcached_create`. + + +-------------------------- +Creating a pool of servers +-------------------------- + + + +.. code-block:: c + +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); + + .... 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. + + +---------------------------- +Adding a value to the server +---------------------------- + + + +.. code-block:: c + +Adding a value to the Server:: + + char *key= "foo"; + 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) + { + ... // handle failure + } + + +It is best practice to always look at the return value of any operation. + + +------------------------ +Fetching multiple values +------------------------ + + + +.. code-block:: c + + memcached_return_t rc; + char *keys[]= {"fudge", "son", "food"}; + 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))) + { + free(return_value); + x++; + } + + +Notice that you freed values returned from memcached_fetch(). The define +:c:type:`MEMCACHED_MAX_KEY` is provided for usage. + + + +---- +HOME +---- + + +To find out more information please check: +`http://libmemcached.org/ <http://libmemcached.org/>`_ + + +-------- +SEE ALSO +-------- + + +:manpage:`memcached(1)` + |