Merge in docs.
[awesomized/libmemcached] / docs / memcached_get.rst
1 .. highlight:: perl
2
3
4 memcached_get, memcached_mget, memcached_fetch, memcached_mget_execute, memcached_mget_execute_by_key
5 *****************************************************************************************************
6
7
8 Get a value
9
10
11 *******
12 LIBRARY
13 *******
14
15
16 C Client Library for memcached (libmemcached, -lmemcached)
17
18
19 ********
20 SYNOPSIS
21 ********
22
23
24
25 .. code-block:: perl
26
27 #include <libmemcached/memcached.h>
28
29 memcached_result_st *
30 memcached_fetch_result (memcached_st *ptr,
31 memcached_result_st *result,
32 memcached_return_t *error);
33
34 char *
35 memcached_get (memcached_st *ptr,
36 const char *key, size_t key_length,
37 size_t *value_length,
38 uint32_t *flags,
39 memcached_return_t *error);
40
41 memcached_return_t
42 memcached_mget (memcached_st *ptr,
43 const char * const *keys,
44 const size_t *key_length,
45 size_t number_of_keys);
46 char *
47 memcached_get_by_key (memcached_st *ptr,
48 const char *master_key, size_t master_key_length,
49 const char *key, size_t key_length,
50 size_t *value_length,
51 uint32_t *flags,
52 memcached_return_t *error);
53
54 memcached_return_t
55 memcached_mget_by_key (memcached_st *ptr,
56 const char *master_key, size_t master_key_length,
57 const char * const *keys,
58 const size_t *key_length,
59 size_t number_of_keys);
60
61 char *
62 memcached_fetch (memcached_st *ptr,
63 char *key, size_t *key_length,
64 size_t *value_length,
65 uint32_t *flags,
66 memcached_return_t *error);
67
68 memcached_return_t
69 memcached_fetch_execute (memcached_st *ptr,
70 memcached_execute_fn *callback,
71 void *context,
72 uint32_t number_of_callbacks);
73
74
75 memcached_return_t
76 memcached_mget_execute (memcached_st *ptr,
77 const char * const *keys,
78 const size_t *key_length,
79 size_t number_of_keys,
80 memcached_execute_fn *callback,
81 void *context,
82 uint32_t number_of_callbacks);
83
84 memcached_return_t
85 memcached_mget_execute_by_key (memcached_st *ptr,
86 const char *master_key,
87 size_t master_key_length,
88 const char * const *keys,
89 const size_t *key_length,
90 size_t number_of_keys,
91 memcached_execute_fn *callback,
92 void *context,
93 uint32_t number_of_callbacks);
94
95
96
97 ***********
98 DESCRIPTION
99 ***********
100
101
102 memcached_get() is used to fetch an individual value from the server. You
103 must pass in a key and its length to fetch the object. You must supply
104 three pointer variables which will give you the state of the returned
105 object. A uint32_t pointer to contain whatever flags you stored with the value,
106 a size_t pointer which will be filled with size of of the object, and a
107 memcached_return_t pointer to hold any error. The object will be returned
108 upon success and NULL will be returned on failure. Any object returned by
109 memcached_get() must be released by the caller application.
110
111 memcached_mget() is used to select multiple keys at once. For multiple key
112 operations it is always faster to use this function. This function always
113 works asynchronously. memcached_fetch() is then used to retrieve any keys
114 found. No error is given on keys that are not found. You must call either
115 memcached_fetch() or memcached_fetch_result() after a successful call to
116 memcached_mget(). You should continue to call these functions until they
117 return NULL (aka no more values). If you need to quit in the middle of a
118 memcached_get() call, execute a memcached_quit(). After you do this, you can
119 issue new queries against the server.
120
121 memcached_fetch() is used to fetch an individual value from the server.
122 memcached_mget() must always be called before using this method. You
123 must pass in a key and its length to fetch the object. You must supply
124 three pointer variables which will give you the state of the returned
125 object. A uint32_t pointer to contain whatever flags you stored with the value,
126 a size_t pointer which will be filled with size of of the object, and a
127 memcached_return_t pointer to hold any error. The object will be returned
128 upon success and NULL will be returned on failure. MEMCACHD_END is returned
129 by the \*error value when all objects that have been found are returned.
130 The final value upon MEMCACHED_END is null. Values returned by
131 memcached_fetch() musted be free'ed by the caller. memcached_fetch() will
132 be DEPRECATED in the near future, memcached_fetch_result() should be used
133 instead.
134
135 memcached_fetch_result() is used to return a memcached_result_st(3) structure
136 from a memcached server. The result object is forward compatible with changes
137 to the server. For more information please refer to the memcached_result_st(3)
138 help. This function will dynamically allocate a result structure for you
139 if you do not pass one to the function.
140
141 memcached_fetch_execute() is a callback function for result sets. Instead
142 of returning the results to you for processing, it passes each of the
143 result sets to the list of functions you provide. It passes to the function
144 a memcached_st that can be cloned for use in the called function (it can not
145 be used directly). It also passes a result set which does not need to be freed.
146 Finally it passes a "context". This is just a pointer to a memory reference
147 you supply the calling function. Currently only one value is being passed
148 to each function call. In the future there will be an option to allow this
149 to be an array.
150
151 memcached_mget_execute() and memcached_mget_execute_by_key() is
152 similar to memcached_mget(), but it may trigger the supplied callbacks
153 with result sets while sending out the queries. If you try to perform
154 a really large multiget with memcached_mget() you may encounter a
155 deadlock in the OS kernel (we fail to write data to the socket because
156 the input buffer is full). memcached_mget_execute() solves this
157 problem by processing some of the results before continuing sending
158 out requests. Please note that this function is only available in the
159 binary protocol.
160
161 memcached_get_by_key() and memcached_mget_by_key() behave in a similar nature
162 as memcached_get() and memcached_mget(). The difference is that they take
163 a master key that is used for determining which server an object was stored
164 if key partitioning was used for storage.
165
166 All of the above functions are not supported when the \ ``MEMCACHED_BEHAVIOR_USE_UDP``\
167 has been set. Executing any of these functions with this behavior on will result in
168 \ ``MEMCACHED_NOT_SUPPORTED``\ being returned or, for those functions which do not return
169 a \ ``memcached_return_t``\ , the error function parameter will be set to
170 \ ``MEMCACHED_NOT_SUPPORTED``\ .
171
172
173 ******
174 RETURN
175 ******
176
177
178 All objects returned must be freed by the calling application.
179 memcached_get() and memcached_fetch() will return NULL on error. You must
180 look at the value of error to determine what the actual error was.
181
182 MEMCACHED_KEY_TOO_BIG is set to error whenever memcached_fetch() was used
183 and the key was set larger then MEMCACHED_MAX_KEY, which was the largest
184 key allowed for the original memcached ascii server.
185
186
187 ****
188 HOME
189 ****
190
191
192 To find out more information please check:
193 `https://launchpad.net/libmemcached <https://launchpad.net/libmemcached>`_
194
195
196 ******
197 AUTHOR
198 ******
199
200
201 Brian Aker, <brian@tangent.org>
202
203
204 ********
205 SEE ALSO
206 ********
207
208
209 memcached(1) libmemcached(3) memcached_strerror(3)
210