summaryrefslogtreecommitdiff
path: root/docs/source/libmemcached_examples.rst
blob: a43ee1a2a11f77a07cffd6614531359ab9e0d13b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
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)`