update docs
[m6w6/libmemcached] / libmemcached / memcached_behavior.html
1
2
3 <!DOCTYPE html>
4 <html class="writer-html5" lang="en" >
5 <head>
6 <meta charset="utf-8">
7
8 <meta name="viewport" content="width=device-width, initial-scale=1.0">
9
10 <title>Behaviors of the library &mdash; libmemcached 1.0.99 documentation</title>
11
12
13
14 <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
15 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
16
17
18
19
20
21
22
23 <!--[if lt IE 9]>
24 <script src="../_static/js/html5shiv.min.js"></script>
25 <![endif]-->
26
27
28 <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
29 <script src="../_static/jquery.js"></script>
30 <script src="../_static/underscore.js"></script>
31 <script src="../_static/doctools.js"></script>
32 <script src="../_static/language_data.js"></script>
33
34 <script type="text/javascript" src="../_static/js/theme.js"></script>
35
36
37 <link rel="index" title="Index" href="../genindex.html" />
38 <link rel="search" title="Search" href="../search.html" />
39 <link rel="copyright" title="Copyright" href="../copyright.html" />
40 <link rel="next" title="Library callbacks" href="memcached_callback.html" />
41 <link rel="prev" title="Internal Behavior" href="index_advanced_internals.html" />
42 </head>
43
44 <body class="wy-body-for-nav">
45
46
47 <div class="wy-grid-for-nav">
48
49 <nav data-toggle="wy-nav-shift" class="wy-nav-side">
50 <div class="wy-side-scroll">
51 <div class="wy-side-nav-search" >
52
53
54
55 <a href="../index.html" class="icon icon-home" alt="Documentation Home"> libmemcached
56
57
58
59 </a>
60
61
62
63
64 <div class="version">
65 1.0
66 </div>
67
68
69
70
71 <div role="search">
72 <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
73 <input type="text" name="q" placeholder="Search docs" />
74 <input type="hidden" name="check_keywords" value="yes" />
75 <input type="hidden" name="area" value="default" />
76 </form>
77 </div>
78
79
80 </div>
81
82
83 <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
84
85
86
87
88
89
90 <p class="caption"><span class="caption-text">libmemcached</span></p>
91 <ul class="current">
92 <li class="toctree-l1"><a class="reference internal" href="../libmemcached.html">Introduction</a></li>
93 <li class="toctree-l1 current"><a class="reference internal" href="index.html">libmemcached API</a><ul class="current">
94 <li class="toctree-l2"><a class="reference internal" href="index_basics.html">Basics</a></li>
95 <li class="toctree-l2"><a class="reference internal" href="index_data.html">Working with Data</a></li>
96 <li class="toctree-l2"><a class="reference internal" href="index_errors.html">Messages and Errors</a></li>
97 <li class="toctree-l2 current"><a class="reference internal" href="index_advanced.html">Advanced Topics</a><ul class="current">
98 <li class="toctree-l3 current"><a class="reference internal" href="index_advanced_internals.html">Internal Behavior</a><ul class="current">
99 <li class="toctree-l4 current"><a class="current reference internal" href="#">Behaviors of the library</a></li>
100 <li class="toctree-l4"><a class="reference internal" href="memcached_callback.html">Library callbacks</a></li>
101 <li class="toctree-l4"><a class="reference internal" href="memcached_memory_allocators.html">Use custom allocators for embedded usage</a></li>
102 <li class="toctree-l4"><a class="reference internal" href="memcached_user_data.html">Storing custom user information in the client.</a></li>
103 </ul>
104 </li>
105 <li class="toctree-l3"><a class="reference internal" href="index_advanced_aeh.html">Authentication, Encryption &amp; Hashing</a></li>
106 <li class="toctree-l3"><a class="reference internal" href="index_advanced_servers.html">Servers and Server Lists</a></li>
107 <li class="toctree-l3"><a class="reference internal" href="index_advanced_daemon.html">Affecting the memcached Daemon</a></li>
108 <li class="toctree-l3"><a class="reference internal" href="index_advanced_stats.html">Statistics</a></li>
109 </ul>
110 </li>
111 <li class="toctree-l2"><a class="reference internal" href="index_deprecated.html">Deprecated Functionality</a></li>
112 </ul>
113 </li>
114 <li class="toctree-l1"><a class="reference internal" href="index_misc.html">Misc</a></li>
115 </ul>
116 <p class="caption"><span class="caption-text">libmemcachedutil</span></p>
117 <ul>
118 <li class="toctree-l1"><a class="reference internal" href="../libmemcachedutil.html">Introduction</a></li>
119 <li class="toctree-l1"><a class="reference internal" href="../libmemcachedutil/index.html">libmemcachedutil API</a></li>
120 </ul>
121 <p class="caption"><span class="caption-text">libhashkit</span></p>
122 <ul>
123 <li class="toctree-l1"><a class="reference internal" href="../libhashkit.html">Introduction</a></li>
124 <li class="toctree-l1"><a class="reference internal" href="../libhashkit/index.html">libhashkit API</a></li>
125 </ul>
126 <p class="caption"><span class="caption-text">Client Applications</span></p>
127 <ul>
128 <li class="toctree-l1"><a class="reference internal" href="../bin/index.html">Client Applications</a></li>
129 </ul>
130 <p class="caption"><span class="caption-text">Copyright</span></p>
131 <ul>
132 <li class="toctree-l1"><a class="reference internal" href="../copyright.html">Copyright</a></li>
133 </ul>
134
135
136
137 </div>
138
139 </div>
140 </nav>
141
142 <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
143
144
145 <nav class="wy-nav-top" aria-label="top navigation">
146
147 <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
148 <a href="../index.html">libmemcached</a>
149
150 </nav>
151
152
153 <div class="wy-nav-content">
154
155 <div class="rst-content">
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173 <div role="navigation" aria-label="breadcrumbs navigation">
174
175 <ul class="wy-breadcrumbs">
176
177 <li><a href="../index.html" class="icon icon-home"></a> &raquo;</li>
178
179 <li><a href="index.html">libmemcached API</a> &raquo;</li>
180
181 <li><a href="index_advanced.html">Advanced Topics</a> &raquo;</li>
182
183 <li><a href="index_advanced_internals.html">Internal Behavior</a> &raquo;</li>
184
185 <li>Behaviors of the library</li>
186
187
188 <li class="wy-breadcrumbs-aside">
189
190
191
192 </li>
193
194 </ul>
195
196
197 <hr/>
198 </div>
199 <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
200 <div itemprop="articleBody">
201
202 <div class="section" id="behaviors-of-the-library">
203 <h1>Behaviors of the library<a class="headerlink" href="#behaviors-of-the-library" title="Permalink to this headline"></a></h1>
204 <p>Manipulate the behavior of a memcached_st structure.</p>
205 <div class="section" id="synopsis">
206 <h2>SYNOPSIS<a class="headerlink" href="#synopsis" title="Permalink to this headline"></a></h2>
207 <dl class="simple">
208 <dt>#include &lt;libmemcached/memcached.h&gt;</dt><dd><p>Compile and link with -lmemcached</p>
209 </dd>
210 </dl>
211 <dl class="cpp function">
212 <dt id="_CPPv422memcached_behavior_getP12memcached_st20memcached_behavior_t">
213 <span id="_CPPv322memcached_behavior_getP12memcached_st20memcached_behavior_t"></span><span id="_CPPv222memcached_behavior_getP12memcached_st20memcached_behavior_t"></span><span id="memcached_behavior_get__memcached_stP.memcached_behavior_t"></span>uint64_t <code class="sig-name descname">memcached_behavior_get</code><span class="sig-paren">(</span><a class="reference internal" href="memcached_create.html#_CPPv412memcached_st" title="memcached_st">memcached_st</a> *<em>ptr</em>, <a class="reference internal" href="#_CPPv420memcached_behavior_t" title="memcached_behavior_t">memcached_behavior_t</a> <em>flag</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv422memcached_behavior_getP12memcached_st20memcached_behavior_t" title="Permalink to this definition"></a><br /></dt>
214 <dd><dl class="field-list simple">
215 <dt class="field-odd">Parameters</dt>
216 <dd class="field-odd"><ul class="simple">
217 <li><p><strong>ptr</strong> -- pointer to initialized <a class="reference internal" href="memcached_create.html#_CPPv412memcached_st" title="memcached_st"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_st</span></code></a> struct</p></li>
218 <li><p><strong>flag</strong> -- <a class="reference internal" href="#_CPPv420memcached_behavior_t" title="memcached_behavior_t"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_behavior_t</span></code></a> to query</p></li>
219 </ul>
220 </dd>
221 <dt class="field-even">Returns</dt>
222 <dd class="field-even"><p>the vaue set for <a class="reference internal" href="#_CPPv422memcached_behavior_getP12memcached_st20memcached_behavior_t" title="memcached_behavior_get::flag"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">flag</span></code></a></p>
223 </dd>
224 </dl>
225 </dd></dl>
226
227 <dl class="cpp function">
228 <dt id="_CPPv422memcached_behavior_setP12memcached_st20memcached_behavior_t8uint64_t">
229 <span id="_CPPv322memcached_behavior_setP12memcached_st20memcached_behavior_t8uint64_t"></span><span id="_CPPv222memcached_behavior_setP12memcached_st20memcached_behavior_t8uint64_t"></span><span id="memcached_behavior_set__memcached_stP.memcached_behavior_t.uint64_t"></span><a class="reference internal" href="memcached_return_t.html#_CPPv418memcached_return_t" title="memcached_return_t">memcached_return_t</a> <code class="sig-name descname">memcached_behavior_set</code><span class="sig-paren">(</span><a class="reference internal" href="memcached_create.html#_CPPv412memcached_st" title="memcached_st">memcached_st</a> *<em>ptr</em>, <a class="reference internal" href="#_CPPv420memcached_behavior_t" title="memcached_behavior_t">memcached_behavior_t</a> <em>flag</em>, uint64_t <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv422memcached_behavior_setP12memcached_st20memcached_behavior_t8uint64_t" title="Permalink to this definition"></a><br /></dt>
230 <dd><dl class="field-list simple">
231 <dt class="field-odd">Parameters</dt>
232 <dd class="field-odd"><ul class="simple">
233 <li><p><strong>ptr</strong> -- pointer to initialized <a class="reference internal" href="memcached_create.html#_CPPv412memcached_st" title="memcached_st"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_st</span></code></a> struct</p></li>
234 <li><p><strong>flag</strong> -- <a class="reference internal" href="#_CPPv420memcached_behavior_t" title="memcached_behavior_t"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_behavior_t</span></code></a> to set</p></li>
235 <li><p><strong>data</strong> -- the value to set for <a class="reference internal" href="#_CPPv422memcached_behavior_setP12memcached_st20memcached_behavior_t8uint64_t" title="memcached_behavior_set::flag"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">flag</span></code></a></p></li>
236 </ul>
237 </dd>
238 <dt class="field-even">Returns</dt>
239 <dd class="field-even"><p><a class="reference internal" href="memcached_return_t.html#_CPPv418memcached_return_t" title="memcached_return_t"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_return_t</span></code></a> indicating success</p>
240 </dd>
241 </dl>
242 <div class="versionchanged">
243 <p><span class="versionmodified changed">Changed in version 0.17: </span>The <a class="reference internal" href="#_CPPv422memcached_behavior_setP12memcached_st20memcached_behavior_t8uint64_t" title="memcached_behavior_set::data"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">data</span></code></a> argument of <a class="reference internal" href="#_CPPv422memcached_behavior_setP12memcached_st20memcached_behavior_t8uint64_t" title="memcached_behavior_set"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_behavior_set()</span></code></a> was changed
244 from taking a pointer to data value, to taking a uin64_t.</p>
245 </div>
246 </dd></dl>
247
248 <dl class="c type">
249 <dt id="c.memcached_behavior_t">
250 <em class="property">typedef </em><em class="property">enum</em> <a class="reference internal" href="#c.memcached_behavior_t" title="memcached_behavior_t">memcached_behavior_t</a> <code class="sig-name descname">memcached_behavior_t</code><a class="headerlink" href="#c.memcached_behavior_t" title="Permalink to this definition"></a><br /></dt>
251 <dd></dd></dl>
252
253 <dl class="cpp enum">
254 <dt id="_CPPv420memcached_behavior_t">
255 <span id="_CPPv320memcached_behavior_t"></span><span id="_CPPv220memcached_behavior_t"></span><em class="property">enum </em><code class="sig-name descname">memcached_behavior_t</code><a class="headerlink" href="#_CPPv420memcached_behavior_t" title="Permalink to this definition"></a><br /></dt>
256 <dd><dl class="cpp enumerator">
257 <dt id="_CPPv4N20memcached_behavior_t26MEMCACHED_BEHAVIOR_USE_UDPE">
258 <span id="_CPPv3N20memcached_behavior_t26MEMCACHED_BEHAVIOR_USE_UDPE"></span><span id="_CPPv2N20memcached_behavior_t26MEMCACHED_BEHAVIOR_USE_UDPE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_USE_UDP</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t26MEMCACHED_BEHAVIOR_USE_UDPE" title="Permalink to this definition"></a><br /></dt>
259 <dd><p>Causes <code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">libmemcached</span></code> to use the UDP transport when communicating with a
260 memcached server. Not all I/O operations are tested when this behavior
261 is enabled.</p>
262 <p>The following operations will return <a class="reference internal" href="memcached_return_t.html#_CPPv4N18memcached_return_t23MEMCACHED_NOT_SUPPORTEDE" title="MEMCACHED_NOT_SUPPORTED"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">MEMCACHED_NOT_SUPPORTED</span></code></a> when
263 executed with <a class="reference internal" href="#_CPPv4N20memcached_behavior_t26MEMCACHED_BEHAVIOR_USE_UDPE" title="memcached_behavior_t::MEMCACHED_BEHAVIOR_USE_UDP"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">MEMCACHED_BEHAVIOR_USE_UDP</span></code></a> enabled:</p>
264 <ul class="simple">
265 <li><p><a class="reference internal" href="memcached_version.html#_CPPv417memcached_versionP12memcached_st" title="memcached_version"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_version()</span></code></a>,</p></li>
266 <li><p><a class="reference internal" href="memcached_stats.html#_CPPv414memcached_statP12memcached_stPcP18memcached_return_t" title="memcached_stat"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_stat()</span></code></a>,</p></li>
267 <li><p><a class="reference internal" href="memcached_get.html#_CPPv413memcached_getP12memcached_stPKc6size_tP6size_tP8uint32_tP18memcached_return_t" title="memcached_get"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_get()</span></code></a>,</p></li>
268 <li><p><a class="reference internal" href="memcached_get.html#_CPPv420memcached_get_by_keyP12memcached_stPKc6size_tPKc6size_tP6size_tP8uint32_tP18memcached_return_t" title="memcached_get_by_key"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_get_by_key()</span></code></a>,</p></li>
269 <li><p><a class="reference internal" href="memcached_get.html#_CPPv414memcached_mgetP12memcached_stPPCKcPK6size_t6size_t" title="memcached_mget"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_mget()</span></code></a>,</p></li>
270 <li><p><a class="reference internal" href="memcached_get.html#_CPPv421memcached_mget_by_keyP12memcached_stPKc6size_tPPCKcPK6size_t6size_t" title="memcached_mget_by_key"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_mget_by_key()</span></code></a>,</p></li>
271 <li><p><a class="reference internal" href="memcached_fetch.html#_CPPv415memcached_fetchP12memcached_stPcP6size_tP6size_tP8uint32_tP18memcached_return_t" title="memcached_fetch"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_fetch()</span></code></a>,</p></li>
272 <li><p><a class="reference internal" href="memcached_get.html#_CPPv422memcached_fetch_resultP12memcached_stP19memcached_result_stP18memcached_return_t" title="memcached_fetch_result"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_fetch_result()</span></code></a>,</p></li>
273 <li><p><a class="reference internal" href="memcached_get.html#_CPPv423memcached_fetch_executeP12memcached_stP20memcached_execute_fnPv8uint32_t" title="memcached_fetch_execute"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_fetch_execute()</span></code></a>.</p></li>
274 </ul>
275 <p>All other operations are tested but are executed in a 'fire-and-forget'
276 mode, in which once the client has executed the operation, no attempt
277 will be made to ensure the operation has been received and acted on by
278 the server.</p>
279 <p><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">libmemcached</span></code> does not allow TCP and UDP servers to be shared within
280 the same <code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">libmemcached</span></code> client 'instance'. An attempt to add a TCP
281 server when this behavior is enabled will result in a
282 <a class="reference internal" href="memcached_return_t.html#_CPPv4N18memcached_return_t31MEMCACHED_INVALID_HOST_PROTOCOLE" title="MEMCACHED_INVALID_HOST_PROTOCOL"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">MEMCACHED_INVALID_HOST_PROTOCOL</span></code></a>, as will attempting to add a UDP
283 server when this behavior has not been enabled.</p>
284 </dd></dl>
285
286 <dl class="cpp enumerator">
287 <dt id="_CPPv4N20memcached_behavior_t27MEMCACHED_BEHAVIOR_NO_BLOCKE">
288 <span id="_CPPv3N20memcached_behavior_t27MEMCACHED_BEHAVIOR_NO_BLOCKE"></span><span id="_CPPv2N20memcached_behavior_t27MEMCACHED_BEHAVIOR_NO_BLOCKE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_NO_BLOCK</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t27MEMCACHED_BEHAVIOR_NO_BLOCKE" title="Permalink to this definition"></a><br /></dt>
289 <dd><p>Causes <code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">libmemcached</span></code> to use asynchronous IO. This is the fastest
290 transport available for storage functions.</p>
291 </dd></dl>
292
293 <dl class="cpp enumerator">
294 <dt id="_CPPv4N20memcached_behavior_t30MEMCACHED_BEHAVIOR_SND_TIMEOUTE">
295 <span id="_CPPv3N20memcached_behavior_t30MEMCACHED_BEHAVIOR_SND_TIMEOUTE"></span><span id="_CPPv2N20memcached_behavior_t30MEMCACHED_BEHAVIOR_SND_TIMEOUTE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_SND_TIMEOUT</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t30MEMCACHED_BEHAVIOR_SND_TIMEOUTE" title="Permalink to this definition"></a><br /></dt>
296 <dd><p>This sets the microsecond behavior of the socket against the SO_SNDTIMEO
297 flag.</p>
298 <p>In cases where you cannot use non-blocking IO this will allow you to
299 still have timeouts on the sending of data.</p>
300 </dd></dl>
301
302 <dl class="cpp enumerator">
303 <dt id="_CPPv4N20memcached_behavior_t30MEMCACHED_BEHAVIOR_RCV_TIMEOUTE">
304 <span id="_CPPv3N20memcached_behavior_t30MEMCACHED_BEHAVIOR_RCV_TIMEOUTE"></span><span id="_CPPv2N20memcached_behavior_t30MEMCACHED_BEHAVIOR_RCV_TIMEOUTE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_RCV_TIMEOUT</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t30MEMCACHED_BEHAVIOR_RCV_TIMEOUTE" title="Permalink to this definition"></a><br /></dt>
305 <dd><p>This sets the microsecond behavior of the socket against the SO_RCVTIMEO
306 flag.</p>
307 <p>In cases where you cannot use non-blocking IO this will allow you to
308 still have timeouts on the reading of data.</p>
309 </dd></dl>
310
311 <dl class="cpp enumerator">
312 <dt id="_CPPv4N20memcached_behavior_t30MEMCACHED_BEHAVIOR_TCP_NODELAYE">
313 <span id="_CPPv3N20memcached_behavior_t30MEMCACHED_BEHAVIOR_TCP_NODELAYE"></span><span id="_CPPv2N20memcached_behavior_t30MEMCACHED_BEHAVIOR_TCP_NODELAYE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_TCP_NODELAY</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t30MEMCACHED_BEHAVIOR_TCP_NODELAYE" title="Permalink to this definition"></a><br /></dt>
314 <dd><p>Disables Nagle's algorithm.
315 See <a class="reference external" href="https://tools.ietf.org/html/rfc896">RFC 896</a>.</p>
316 </dd></dl>
317
318 <dl class="cpp enumerator">
319 <dt id="_CPPv4N20memcached_behavior_t23MEMCACHED_BEHAVIOR_HASHE">
320 <span id="_CPPv3N20memcached_behavior_t23MEMCACHED_BEHAVIOR_HASHE"></span><span id="_CPPv2N20memcached_behavior_t23MEMCACHED_BEHAVIOR_HASHE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_HASH</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t23MEMCACHED_BEHAVIOR_HASHE" title="Permalink to this definition"></a><br /></dt>
321 <dd><p>Set the <a class="reference internal" href="memcached_generate_hash_value.html#_CPPv416memcached_hash_t" title="memcached_hash_t"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">hash</span> <span class="pre">algorithm</span></code></a> used for keys.</p>
322 <p>Each hash has its advantages and its weaknesses. If you don't know or
323 don't care, just go with the default.</p>
324 </dd></dl>
325
326 <dl class="cpp enumerator">
327 <dt id="_CPPv4N20memcached_behavior_t31MEMCACHED_BEHAVIOR_DISTRIBUTIONE">
328 <span id="_CPPv3N20memcached_behavior_t31MEMCACHED_BEHAVIOR_DISTRIBUTIONE"></span><span id="_CPPv2N20memcached_behavior_t31MEMCACHED_BEHAVIOR_DISTRIBUTIONE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_DISTRIBUTION</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t31MEMCACHED_BEHAVIOR_DISTRIBUTIONE" title="Permalink to this definition"></a><br /></dt>
329 <dd><p>Setting a <a class="reference internal" href="#_CPPv431memcached_server_distribution_t" title="memcached_server_distribution_t"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_server_distribution_t</span></code></a> you can enable different
330 means of distributing values to servers.</p>
331 <p>The default method is <a class="reference internal" href="#_CPPv4N31memcached_server_distribution_t29MEMCACHED_DISTRIBUTION_MODULAE" title="MEMCACHED_DISTRIBUTION_MODULA"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">MEMCACHED_DISTRIBUTION_MODULA</span></code></a> (hash of the
332 key modulo number of servers).</p>
333 <p>You can enable consistent hashing by setting
334 <a class="reference internal" href="#_CPPv4N31memcached_server_distribution_t33MEMCACHED_DISTRIBUTION_CONSISTENTE" title="MEMCACHED_DISTRIBUTION_CONSISTENT"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">MEMCACHED_DISTRIBUTION_CONSISTENT</span></code></a>. Consistent hashing delivers better
335 distribution and allows servers to be added to the cluster with minimal
336 cache losses.</p>
337 <p>Currently <a class="reference internal" href="#_CPPv4N31memcached_server_distribution_t33MEMCACHED_DISTRIBUTION_CONSISTENTE" title="MEMCACHED_DISTRIBUTION_CONSISTENT"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">MEMCACHED_DISTRIBUTION_CONSISTENT</span></code></a> is an alias for the value
338 <a class="reference internal" href="#_CPPv4N31memcached_server_distribution_t40MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMAE" title="MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA</span></code></a>.</p>
339 </dd></dl>
340
341 <dl class="cpp enumerator">
342 <dt id="_CPPv4N20memcached_behavior_t32MEMCACHED_BEHAVIOR_CACHE_LOOKUPSE">
343 <span id="_CPPv3N20memcached_behavior_t32MEMCACHED_BEHAVIOR_CACHE_LOOKUPSE"></span><span id="_CPPv2N20memcached_behavior_t32MEMCACHED_BEHAVIOR_CACHE_LOOKUPSE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_CACHE_LOOKUPS</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t32MEMCACHED_BEHAVIOR_CACHE_LOOKUPSE" title="Permalink to this definition"></a><br /></dt>
344 <dd><blockquote>
345 <div><div class="deprecated">
346 <p><span class="versionmodified deprecated">Deprecated since version 0.46(?): </span>DNS lookups are now always cached until an error occurs with the
347 server.</p>
348 </div>
349 </div></blockquote>
350 <p>Memcached can cache named lookups so that DNS lookups are made only once.</p>
351 </dd></dl>
352
353 <dl class="cpp enumerator">
354 <dt id="_CPPv4N20memcached_behavior_t30MEMCACHED_BEHAVIOR_SUPPORT_CASE">
355 <span id="_CPPv3N20memcached_behavior_t30MEMCACHED_BEHAVIOR_SUPPORT_CASE"></span><span id="_CPPv2N20memcached_behavior_t30MEMCACHED_BEHAVIOR_SUPPORT_CASE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_SUPPORT_CAS</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t30MEMCACHED_BEHAVIOR_SUPPORT_CASE" title="Permalink to this definition"></a><br /></dt>
356 <dd><p>Support CAS operations (this is not enabled by default at this point in
357 the server since it imposes a slight performance penalty).</p>
358 </dd></dl>
359
360 <dl class="cpp enumerator">
361 <dt id="_CPPv4N20memcached_behavior_t25MEMCACHED_BEHAVIOR_KETAMAE">
362 <span id="_CPPv3N20memcached_behavior_t25MEMCACHED_BEHAVIOR_KETAMAE"></span><span id="_CPPv2N20memcached_behavior_t25MEMCACHED_BEHAVIOR_KETAMAE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_KETAMA</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t25MEMCACHED_BEHAVIOR_KETAMAE" title="Permalink to this definition"></a><br /></dt>
363 <dd><p>Sets the default distribution to
364 <a class="reference internal" href="#_CPPv4N31memcached_server_distribution_t40MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMAE" title="MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA</span></code></a> and the hash to
365 <a class="reference internal" href="memcached_generate_hash_value.html#_CPPv4N16memcached_hash_t18MEMCACHED_HASH_MD5E" title="MEMCACHED_HASH_MD5"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">MEMCACHED_HASH_MD5</span></code></a>.</p>
366 </dd></dl>
367
368 <dl class="cpp enumerator">
369 <dt id="_CPPv4N20memcached_behavior_t34MEMCACHED_BEHAVIOR_KETAMA_WEIGHTEDE">
370 <span id="_CPPv3N20memcached_behavior_t34MEMCACHED_BEHAVIOR_KETAMA_WEIGHTEDE"></span><span id="_CPPv2N20memcached_behavior_t34MEMCACHED_BEHAVIOR_KETAMA_WEIGHTEDE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_KETAMA_WEIGHTED</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t34MEMCACHED_BEHAVIOR_KETAMA_WEIGHTEDE" title="Permalink to this definition"></a><br /></dt>
371 <dd><p>Sets the default distribution to
372 <a class="reference internal" href="#_CPPv4N31memcached_server_distribution_t40MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMAE" title="MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA</span></code></a> with the weighted tests.
373 Makes the default hashing algorithm for keys use <a class="reference internal" href="memcached_generate_hash_value.html#_CPPv4N16memcached_hash_t18MEMCACHED_HASH_MD5E" title="MEMCACHED_HASH_MD5"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">MEMCACHED_HASH_MD5</span></code></a>.</p>
374 </dd></dl>
375
376 <dl class="cpp enumerator">
377 <dt id="_CPPv4N20memcached_behavior_t30MEMCACHED_BEHAVIOR_KETAMA_HASHE">
378 <span id="_CPPv3N20memcached_behavior_t30MEMCACHED_BEHAVIOR_KETAMA_HASHE"></span><span id="_CPPv2N20memcached_behavior_t30MEMCACHED_BEHAVIOR_KETAMA_HASHE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_KETAMA_HASH</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t30MEMCACHED_BEHAVIOR_KETAMA_HASHE" title="Permalink to this definition"></a><br /></dt>
379 <dd><p>Sets the <a class="reference internal" href="memcached_generate_hash_value.html#_CPPv416memcached_hash_t" title="memcached_hash_t"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">hashing</span> <span class="pre">algorithm</span></code></a> for host mapping on continuum.</p>
380 </dd></dl>
381
382 <dl class="cpp enumerator">
383 <dt id="_CPPv4N20memcached_behavior_t32MEMCACHED_BEHAVIOR_KETAMA_COMPATE">
384 <span id="_CPPv3N20memcached_behavior_t32MEMCACHED_BEHAVIOR_KETAMA_COMPATE"></span><span id="_CPPv2N20memcached_behavior_t32MEMCACHED_BEHAVIOR_KETAMA_COMPATE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_KETAMA_COMPAT</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t32MEMCACHED_BEHAVIOR_KETAMA_COMPATE" title="Permalink to this definition"></a><br /></dt>
385 <dd><p>Sets the compatibility mode. The value can be set to either
386 <code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">MEMCACHED_KETAMA_COMPAT_LIBMEMCACHED</span></code> (this is the default) or
387 <code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">MEMCACHED_KETAMA_COMPAT_SPY</span></code> to be compatible with the SPY Memcached
388 client for Java.</p>
389 </dd></dl>
390
391 <dl class="cpp enumerator">
392 <dt id="_CPPv4N20memcached_behavior_t31MEMCACHED_BEHAVIOR_POLL_TIMEOUTE">
393 <span id="_CPPv3N20memcached_behavior_t31MEMCACHED_BEHAVIOR_POLL_TIMEOUTE"></span><span id="_CPPv2N20memcached_behavior_t31MEMCACHED_BEHAVIOR_POLL_TIMEOUTE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_POLL_TIMEOUT</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t31MEMCACHED_BEHAVIOR_POLL_TIMEOUTE" title="Permalink to this definition"></a><br /></dt>
394 <dd><p>Modify the timeout in milliseconds value that is used by poll. The
395 default value is -1. An signed int must be passed to
396 <a class="reference internal" href="#_CPPv422memcached_behavior_setP12memcached_st20memcached_behavior_t8uint64_t" title="memcached_behavior_set"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_behavior_set()</span></code></a> to change this value (this requires casting).
397 For <a class="reference internal" href="#_CPPv422memcached_behavior_getP12memcached_st20memcached_behavior_t" title="memcached_behavior_get"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_behavior_get()</span></code></a> a 'signed int' value will be cast and
398 returned as 'unsigned long long'.</p>
399 </dd></dl>
400
401 <dl class="cpp enumerator">
402 <dt id="_CPPv4N20memcached_behavior_t28MEMCACHED_BEHAVIOR_USER_DATAE">
403 <span id="_CPPv3N20memcached_behavior_t28MEMCACHED_BEHAVIOR_USER_DATAE"></span><span id="_CPPv2N20memcached_behavior_t28MEMCACHED_BEHAVIOR_USER_DATAE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_USER_DATA</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t28MEMCACHED_BEHAVIOR_USER_DATAE" title="Permalink to this definition"></a><br /></dt>
404 <dd><div class="deprecated">
405 <p><span class="versionmodified deprecated">Deprecated since version &lt;: </span>0.30</p>
406 </div>
407 </dd></dl>
408
409 <dl class="cpp enumerator">
410 <dt id="_CPPv4N20memcached_behavior_t34MEMCACHED_BEHAVIOR_BUFFER_REQUESTSE">
411 <span id="_CPPv3N20memcached_behavior_t34MEMCACHED_BEHAVIOR_BUFFER_REQUESTSE"></span><span id="_CPPv2N20memcached_behavior_t34MEMCACHED_BEHAVIOR_BUFFER_REQUESTSE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_BUFFER_REQUESTS</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t34MEMCACHED_BEHAVIOR_BUFFER_REQUESTSE" title="Permalink to this definition"></a><br /></dt>
412 <dd><p>Enabling buffered IO causes commands to &quot;buffer&quot; instead of being sent.
413 Any action that gets data causes this buffer to be be sent to the remote
414 connection. Quiting the connection or closing down the connection will
415 also cause the buffered data to be pushed to the remote connection.</p>
416 </dd></dl>
417
418 <dl class="cpp enumerator">
419 <dt id="_CPPv4N20memcached_behavior_t29MEMCACHED_BEHAVIOR_VERIFY_KEYE">
420 <span id="_CPPv3N20memcached_behavior_t29MEMCACHED_BEHAVIOR_VERIFY_KEYE"></span><span id="_CPPv2N20memcached_behavior_t29MEMCACHED_BEHAVIOR_VERIFY_KEYE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_VERIFY_KEY</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t29MEMCACHED_BEHAVIOR_VERIFY_KEYE" title="Permalink to this definition"></a><br /></dt>
421 <dd><p>Enabling this will cause <code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">libmemcached</span></code> to test all keys to verify that
422 they are valid keys.</p>
423 </dd></dl>
424
425 <dl class="cpp enumerator">
426 <dt id="_CPPv4N20memcached_behavior_t29MEMCACHED_BEHAVIOR_SORT_HOSTSE">
427 <span id="_CPPv3N20memcached_behavior_t29MEMCACHED_BEHAVIOR_SORT_HOSTSE"></span><span id="_CPPv2N20memcached_behavior_t29MEMCACHED_BEHAVIOR_SORT_HOSTSE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_SORT_HOSTS</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t29MEMCACHED_BEHAVIOR_SORT_HOSTSE" title="Permalink to this definition"></a><br /></dt>
428 <dd><p>Enabling this will cause hosts that are added to be placed in the host
429 list in sorted order. This will defeat consistent hashing.</p>
430 </dd></dl>
431
432 <dl class="cpp enumerator">
433 <dt id="_CPPv4N20memcached_behavior_t34MEMCACHED_BEHAVIOR_CONNECT_TIMEOUTE">
434 <span id="_CPPv3N20memcached_behavior_t34MEMCACHED_BEHAVIOR_CONNECT_TIMEOUTE"></span><span id="_CPPv2N20memcached_behavior_t34MEMCACHED_BEHAVIOR_CONNECT_TIMEOUTE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_CONNECT_TIMEOUT</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t34MEMCACHED_BEHAVIOR_CONNECT_TIMEOUTE" title="Permalink to this definition"></a><br /></dt>
435 <dd><p>In non-blocking mode this changes the value of the timeout during socket
436 connection in milliseconds. Specifying -1 means an infinite time‐out.</p>
437 </dd></dl>
438
439 <dl class="cpp enumerator">
440 <dt id="_CPPv4N20memcached_behavior_t34MEMCACHED_BEHAVIOR_BINARY_PROTOCOLE">
441 <span id="_CPPv3N20memcached_behavior_t34MEMCACHED_BEHAVIOR_BINARY_PROTOCOLE"></span><span id="_CPPv2N20memcached_behavior_t34MEMCACHED_BEHAVIOR_BINARY_PROTOCOLE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_BINARY_PROTOCOL</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t34MEMCACHED_BEHAVIOR_BINARY_PROTOCOLE" title="Permalink to this definition"></a><br /></dt>
442 <dd><p>Enable the use of the binary protocol. Please note that you cannot
443 toggle this flag on an open connection.</p>
444 </dd></dl>
445
446 <dl class="cpp enumerator">
447 <dt id="_CPPv4N20memcached_behavior_t35MEMCACHED_BEHAVIOR_IO_MSG_WATERMARKE">
448 <span id="_CPPv3N20memcached_behavior_t35MEMCACHED_BEHAVIOR_IO_MSG_WATERMARKE"></span><span id="_CPPv2N20memcached_behavior_t35MEMCACHED_BEHAVIOR_IO_MSG_WATERMARKE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_IO_MSG_WATERMARK</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t35MEMCACHED_BEHAVIOR_IO_MSG_WATERMARKE" title="Permalink to this definition"></a><br /></dt>
449 <dd><p>Set this value to tune the number of messages that may be sent before
450 <code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">libmemcached</span></code> should start to automatically drain the input queue.</p>
451 <p>Setting this value to high, may cause <code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">libmemcached</span></code> to deadlock (trying
452 to send data, but the send will block because the input buffer in the
453 kernel is full).</p>
454 </dd></dl>
455
456 <dl class="cpp enumerator">
457 <dt id="_CPPv4N20memcached_behavior_t37MEMCACHED_BEHAVIOR_IO_BYTES_WATERMARKE">
458 <span id="_CPPv3N20memcached_behavior_t37MEMCACHED_BEHAVIOR_IO_BYTES_WATERMARKE"></span><span id="_CPPv2N20memcached_behavior_t37MEMCACHED_BEHAVIOR_IO_BYTES_WATERMARKE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_IO_BYTES_WATERMARK</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t37MEMCACHED_BEHAVIOR_IO_BYTES_WATERMARKE" title="Permalink to this definition"></a><br /></dt>
459 <dd><p>Set this value to tune the number of bytes that may be sent before
460 <code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">libmemcached</span></code> should start to automatically drain the input queue (need
461 at least 10 IO requests sent without reading the input buffer).</p>
462 <p>Setting this value to high, may cause libmemcached to deadlock (trying
463 to send data, but the send will block because the input buffer in the
464 kernel is full).</p>
465 </dd></dl>
466
467 <dl class="cpp enumerator">
468 <dt id="_CPPv4N20memcached_behavior_t34MEMCACHED_BEHAVIOR_IO_KEY_PREFETCHE">
469 <span id="_CPPv3N20memcached_behavior_t34MEMCACHED_BEHAVIOR_IO_KEY_PREFETCHE"></span><span id="_CPPv2N20memcached_behavior_t34MEMCACHED_BEHAVIOR_IO_KEY_PREFETCHE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_IO_KEY_PREFETCH</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t34MEMCACHED_BEHAVIOR_IO_KEY_PREFETCHE" title="Permalink to this definition"></a><br /></dt>
470 <dd><p>The binary protocol works a bit different than the textual protocol in
471 that a multiget is implemented as a pipe of single get-operations which
472 are sent to the server in a chunk.</p>
473 <p>If you are using large multigets from your application, you may improve
474 the latency of the gets by setting this value so you send out the first
475 chunk of requests when you hit the specified limit. It allows the
476 servers to start processing the requests to send the data back while the
477 rest of the requests are created and sent to the server.</p>
478 </dd></dl>
479
480 <dl class="cpp enumerator">
481 <dt id="_CPPv4N20memcached_behavior_t26MEMCACHED_BEHAVIOR_NOREPLYE">
482 <span id="_CPPv3N20memcached_behavior_t26MEMCACHED_BEHAVIOR_NOREPLYE"></span><span id="_CPPv2N20memcached_behavior_t26MEMCACHED_BEHAVIOR_NOREPLYE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_NOREPLY</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t26MEMCACHED_BEHAVIOR_NOREPLYE" title="Permalink to this definition"></a><br /></dt>
483 <dd><p>Set this value to specify that you really don't care about the result
484 from your storage commands (set, add, replace, append, prepend).</p>
485 </dd></dl>
486
487 <dl class="cpp enumerator">
488 <dt id="_CPPv4N20memcached_behavior_t37MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICASE">
489 <span id="_CPPv3N20memcached_behavior_t37MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICASE"></span><span id="_CPPv2N20memcached_behavior_t37MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICASE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t37MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICASE" title="Permalink to this definition"></a><br /></dt>
490 <dd><p>Specify the numbers of replicas <code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">libmemcached</span></code> should store of each item
491 (on different servers).</p>
492 <p>This replication does not dedicate certain memcached servers to store
493 the replicas in, but instead it will store the replicas together with
494 all of the other objects (on the 'n' next servers specified in your
495 server list).</p>
496 </dd></dl>
497
498 <dl class="cpp enumerator">
499 <dt id="_CPPv4N20memcached_behavior_t41MEMCACHED_BEHAVIOR_RANDOMIZE_REPLICA_READE">
500 <span id="_CPPv3N20memcached_behavior_t41MEMCACHED_BEHAVIOR_RANDOMIZE_REPLICA_READE"></span><span id="_CPPv2N20memcached_behavior_t41MEMCACHED_BEHAVIOR_RANDOMIZE_REPLICA_READE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_RANDOMIZE_REPLICA_READ</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t41MEMCACHED_BEHAVIOR_RANDOMIZE_REPLICA_READE" title="Permalink to this definition"></a><br /></dt>
501 <dd><p>Allows randomizing the replica reads starting point. Normally the read
502 is done from primary server and in case of miss the read is done from
503 primary + 1, then primary + 2 all the way to 'n' replicas.</p>
504 <p>If this option is set on the starting point of the replica reads is
505 randomized between the servers. This allows distributing read load to
506 multiple servers with the expense of more write traffic.</p>
507 </dd></dl>
508
509 <dl class="cpp enumerator">
510 <dt id="_CPPv4N20memcached_behavior_t23MEMCACHED_BEHAVIOR_CORKE">
511 <span id="_CPPv3N20memcached_behavior_t23MEMCACHED_BEHAVIOR_CORKE"></span><span id="_CPPv2N20memcached_behavior_t23MEMCACHED_BEHAVIOR_CORKE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_CORK</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t23MEMCACHED_BEHAVIOR_CORKE" title="Permalink to this definition"></a><br /></dt>
512 <dd><div class="deprecated">
513 <p><span class="versionmodified deprecated">Deprecated since version ?: </span>This option has been deprecated with the behavior now built in and
514 used appropriately on selected platforms.</p>
515 </div>
516 </dd></dl>
517
518 <dl class="cpp enumerator">
519 <dt id="_CPPv4N20memcached_behavior_t28MEMCACHED_BEHAVIOR_KEEPALIVEE">
520 <span id="_CPPv3N20memcached_behavior_t28MEMCACHED_BEHAVIOR_KEEPALIVEE"></span><span id="_CPPv2N20memcached_behavior_t28MEMCACHED_BEHAVIOR_KEEPALIVEE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_KEEPALIVE</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t28MEMCACHED_BEHAVIOR_KEEPALIVEE" title="Permalink to this definition"></a><br /></dt>
521 <dd><p>Enable TCP_KEEPALIVE behavior.</p>
522 </dd></dl>
523
524 <dl class="cpp enumerator">
525 <dt id="_CPPv4N20memcached_behavior_t33MEMCACHED_BEHAVIOR_KEEPALIVE_IDLEE">
526 <span id="_CPPv3N20memcached_behavior_t33MEMCACHED_BEHAVIOR_KEEPALIVE_IDLEE"></span><span id="_CPPv2N20memcached_behavior_t33MEMCACHED_BEHAVIOR_KEEPALIVE_IDLEE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_KEEPALIVE_IDLE</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t33MEMCACHED_BEHAVIOR_KEEPALIVE_IDLEE" title="Permalink to this definition"></a><br /></dt>
527 <dd><p>Specify time, in seconds, to mark a connection as idle. This is only
528 available as an option on Linux.</p>
529 </dd></dl>
530
531 <dl class="cpp enumerator">
532 <dt id="_CPPv4N20memcached_behavior_t35MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZEE">
533 <span id="_CPPv3N20memcached_behavior_t35MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZEE"></span><span id="_CPPv2N20memcached_behavior_t35MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZEE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZE</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t35MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZEE" title="Permalink to this definition"></a><br /></dt>
534 <dd><p>Find the current size of SO_SNDBUF. A value of 0 means either an error
535 occurred or no hosts were available. It is safe to assume system default
536 if this occurs.</p>
537 <p>If an error occurs you can check the last cached errno to find the
538 specific error.</p>
539 </dd></dl>
540
541 <dl class="cpp enumerator">
542 <dt id="_CPPv4N20memcached_behavior_t35MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZEE">
543 <span id="_CPPv3N20memcached_behavior_t35MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZEE"></span><span id="_CPPv2N20memcached_behavior_t35MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZEE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZE</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t35MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZEE" title="Permalink to this definition"></a><br /></dt>
544 <dd><p>Find the current size of SO_RCVBUF. A value of 0 means either an error
545 occurred or no hosts were available. It is safe to assume system default
546 if this occurs.</p>
547 <p>If an error occurs you can check the last cached errno to find the
548 specific error.</p>
549 </dd></dl>
550
551 <dl class="cpp enumerator">
552 <dt id="_CPPv4N20memcached_behavior_t39MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMITE">
553 <span id="_CPPv3N20memcached_behavior_t39MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMITE"></span><span id="_CPPv2N20memcached_behavior_t39MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMITE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t39MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMITE" title="Permalink to this definition"></a><br /></dt>
554 <dd><div class="deprecated">
555 <p><span class="versionmodified deprecated">Deprecated since version 0.48: </span>See <a class="reference internal" href="#_CPPv4N20memcached_behavior_t40MEMCACHED_BEHAVIOR_REMOVE_FAILED_SERVERSE" title="memcached_behavior_t::MEMCACHED_BEHAVIOR_REMOVE_FAILED_SERVERS"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">MEMCACHED_BEHAVIOR_REMOVE_FAILED_SERVERS</span></code></a></p>
556 </div>
557 <p>Set this value to enable the server be removed after continuous
558 <a class="reference internal" href="#_CPPv4N20memcached_behavior_t39MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMITE" title="memcached_behavior_t::MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT</span></code></a> times connection failure.</p>
559 </dd></dl>
560
561 <dl class="cpp enumerator">
562 <dt id="_CPPv4N20memcached_behavior_t35MEMCACHED_BEHAVIOR_AUTO_EJECT_HOSTSE">
563 <span id="_CPPv3N20memcached_behavior_t35MEMCACHED_BEHAVIOR_AUTO_EJECT_HOSTSE"></span><span id="_CPPv2N20memcached_behavior_t35MEMCACHED_BEHAVIOR_AUTO_EJECT_HOSTSE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_AUTO_EJECT_HOSTS</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t35MEMCACHED_BEHAVIOR_AUTO_EJECT_HOSTSE" title="Permalink to this definition"></a><br /></dt>
564 <dd><div class="deprecated">
565 <p><span class="versionmodified deprecated">Deprecated since version 0.48: </span>See <a class="reference internal" href="#_CPPv4N20memcached_behavior_t40MEMCACHED_BEHAVIOR_REMOVE_FAILED_SERVERSE" title="memcached_behavior_t::MEMCACHED_BEHAVIOR_REMOVE_FAILED_SERVERS"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">MEMCACHED_BEHAVIOR_REMOVE_FAILED_SERVERS</span></code></a></p>
566 </div>
567 <p>If enabled any hosts which have been flagged as disabled will be removed
568 from the list of servers in the <a class="reference internal" href="memcached_create.html#_CPPv412memcached_st" title="memcached_st"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_st</span></code></a> structure. This must be
569 used in combination with <a class="reference internal" href="#_CPPv4N20memcached_behavior_t39MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMITE" title="memcached_behavior_t::MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT</span></code></a>.</p>
570 </dd></dl>
571
572 <dl class="cpp enumerator">
573 <dt id="_CPPv4N20memcached_behavior_t40MEMCACHED_BEHAVIOR_REMOVE_FAILED_SERVERSE">
574 <span id="_CPPv3N20memcached_behavior_t40MEMCACHED_BEHAVIOR_REMOVE_FAILED_SERVERSE"></span><span id="_CPPv2N20memcached_behavior_t40MEMCACHED_BEHAVIOR_REMOVE_FAILED_SERVERSE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_REMOVE_FAILED_SERVERS</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t40MEMCACHED_BEHAVIOR_REMOVE_FAILED_SERVERSE" title="Permalink to this definition"></a><br /></dt>
575 <dd><p>If enabled any hosts which have been flagged as disabled will be removed
576 from the list of servers in the <a class="reference internal" href="memcached_create.html#_CPPv412memcached_st" title="memcached_st"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_st</span></code></a> structure.</p>
577 </dd></dl>
578
579 <dl class="cpp enumerator">
580 <dt id="_CPPv4N20memcached_behavior_t32MEMCACHED_BEHAVIOR_RETRY_TIMEOUTE">
581 <span id="_CPPv3N20memcached_behavior_t32MEMCACHED_BEHAVIOR_RETRY_TIMEOUTE"></span><span id="_CPPv2N20memcached_behavior_t32MEMCACHED_BEHAVIOR_RETRY_TIMEOUTE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_RETRY_TIMEOUT</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t32MEMCACHED_BEHAVIOR_RETRY_TIMEOUTE" title="Permalink to this definition"></a><br /></dt>
582 <dd><p>When enabled a host which is problematic will only be checked for usage
583 based on the amount of time set by this behavior. The value is in
584 seconds.</p>
585 </dd></dl>
586
587 <dl class="cpp enumerator">
588 <dt id="_CPPv4N20memcached_behavior_t39MEMCACHED_BEHAVIOR_HASH_WITH_PREFIX_KEYE">
589 <span id="_CPPv3N20memcached_behavior_t39MEMCACHED_BEHAVIOR_HASH_WITH_PREFIX_KEYE"></span><span id="_CPPv2N20memcached_behavior_t39MEMCACHED_BEHAVIOR_HASH_WITH_PREFIX_KEYE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_BEHAVIOR_HASH_WITH_PREFIX_KEY</code><a class="headerlink" href="#_CPPv4N20memcached_behavior_t39MEMCACHED_BEHAVIOR_HASH_WITH_PREFIX_KEYE" title="Permalink to this definition"></a><br /></dt>
590 <dd><p>When enabled the prefix key will be added to the key when determining
591 server by hash. See <a class="reference internal" href="memcached_callback.html#_CPPv4N20memcached_callback_t28MEMCACHED_CALLBACK_NAMESPACEE" title="MEMCACHED_CALLBACK_NAMESPACE"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">MEMCACHED_CALLBACK_NAMESPACE</span></code></a> for additional
592 information.</p>
593 </dd></dl>
594
595 </dd></dl>
596
597 <dl class="c type">
598 <dt id="c.memcached_server_distribution_t">
599 <em class="property">typedef </em><em class="property">enum</em> <a class="reference internal" href="#c.memcached_server_distribution_t" title="memcached_server_distribution_t">memcached_server_distribution_t</a> <code class="sig-name descname">memcached_server_distribution_t</code><a class="headerlink" href="#c.memcached_server_distribution_t" title="Permalink to this definition"></a><br /></dt>
600 <dd></dd></dl>
601
602 <dl class="cpp enum">
603 <dt id="_CPPv431memcached_server_distribution_t">
604 <span id="_CPPv331memcached_server_distribution_t"></span><span id="_CPPv231memcached_server_distribution_t"></span><em class="property">enum </em><code class="sig-name descname">memcached_server_distribution_t</code><a class="headerlink" href="#_CPPv431memcached_server_distribution_t" title="Permalink to this definition"></a><br /></dt>
605 <dd><dl class="cpp enumerator">
606 <dt id="_CPPv4N31memcached_server_distribution_t29MEMCACHED_DISTRIBUTION_MODULAE">
607 <span id="_CPPv3N31memcached_server_distribution_t29MEMCACHED_DISTRIBUTION_MODULAE"></span><span id="_CPPv2N31memcached_server_distribution_t29MEMCACHED_DISTRIBUTION_MODULAE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_DISTRIBUTION_MODULA</code><a class="headerlink" href="#_CPPv4N31memcached_server_distribution_t29MEMCACHED_DISTRIBUTION_MODULAE" title="Permalink to this definition"></a><br /></dt>
608 <dd><p>Distribute keys by hash modulo number of servers.</p>
609 </dd></dl>
610
611 <dl class="cpp enumerator">
612 <dt id="_CPPv4N31memcached_server_distribution_t33MEMCACHED_DISTRIBUTION_CONSISTENTE">
613 <span id="_CPPv3N31memcached_server_distribution_t33MEMCACHED_DISTRIBUTION_CONSISTENTE"></span><span id="_CPPv2N31memcached_server_distribution_t33MEMCACHED_DISTRIBUTION_CONSISTENTE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_DISTRIBUTION_CONSISTENT</code><a class="headerlink" href="#_CPPv4N31memcached_server_distribution_t33MEMCACHED_DISTRIBUTION_CONSISTENTE" title="Permalink to this definition"></a><br /></dt>
614 <dd><p>Alias for <a class="reference internal" href="#_CPPv4N31memcached_server_distribution_t40MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMAE" title="memcached_server_distribution_t::MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA</span></code></a>.</p>
615 </dd></dl>
616
617 <dl class="cpp enumerator">
618 <dt id="_CPPv4N31memcached_server_distribution_t40MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMAE">
619 <span id="_CPPv3N31memcached_server_distribution_t40MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMAE"></span><span id="_CPPv2N31memcached_server_distribution_t40MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMAE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA</code><a class="headerlink" href="#_CPPv4N31memcached_server_distribution_t40MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMAE" title="Permalink to this definition"></a><br /></dt>
620 <dd><p>Unweighted consistent key distribution.</p>
621 </dd></dl>
622
623 <dl class="cpp enumerator">
624 <dt id="_CPPv4N31memcached_server_distribution_t29MEMCACHED_DISTRIBUTION_RANDOME">
625 <span id="_CPPv3N31memcached_server_distribution_t29MEMCACHED_DISTRIBUTION_RANDOME"></span><span id="_CPPv2N31memcached_server_distribution_t29MEMCACHED_DISTRIBUTION_RANDOME"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_DISTRIBUTION_RANDOM</code><a class="headerlink" href="#_CPPv4N31memcached_server_distribution_t29MEMCACHED_DISTRIBUTION_RANDOME" title="Permalink to this definition"></a><br /></dt>
626 <dd><p>Distribute keys by <em class="manpage"><a class="manpage reference external" href="https://linux.die.net/man/3/rand">rand(3)</a></em> modulo number of servers.</p>
627 </dd></dl>
628
629 <dl class="cpp enumerator">
630 <dt id="_CPPv4N31memcached_server_distribution_t44MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA_SPYE">
631 <span id="_CPPv3N31memcached_server_distribution_t44MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA_SPYE"></span><span id="_CPPv2N31memcached_server_distribution_t44MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA_SPYE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA_SPY</code><a class="headerlink" href="#_CPPv4N31memcached_server_distribution_t44MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA_SPYE" title="Permalink to this definition"></a><br /></dt>
632 <dd><p>Unweighted consistent key distribution compatible with the SPY client.</p>
633 </dd></dl>
634
635 <dl class="cpp enumerator">
636 <dt id="_CPPv4N31memcached_server_distribution_t42MEMCACHED_DISTRIBUTION_CONSISTENT_WEIGHTEDE">
637 <span id="_CPPv3N31memcached_server_distribution_t42MEMCACHED_DISTRIBUTION_CONSISTENT_WEIGHTEDE"></span><span id="_CPPv2N31memcached_server_distribution_t42MEMCACHED_DISTRIBUTION_CONSISTENT_WEIGHTEDE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_DISTRIBUTION_CONSISTENT_WEIGHTED</code><a class="headerlink" href="#_CPPv4N31memcached_server_distribution_t42MEMCACHED_DISTRIBUTION_CONSISTENT_WEIGHTEDE" title="Permalink to this definition"></a><br /></dt>
638 <dd><p>Weighted consistent key distribution.</p>
639 </dd></dl>
640
641 <dl class="cpp enumerator">
642 <dt id="_CPPv4N31memcached_server_distribution_t37MEMCACHED_DISTRIBUTION_VIRTUAL_BUCKETE">
643 <span id="_CPPv3N31memcached_server_distribution_t37MEMCACHED_DISTRIBUTION_VIRTUAL_BUCKETE"></span><span id="_CPPv2N31memcached_server_distribution_t37MEMCACHED_DISTRIBUTION_VIRTUAL_BUCKETE"></span><em class="property">enumerator </em><code class="sig-name descname">MEMCACHED_DISTRIBUTION_VIRTUAL_BUCKET</code><a class="headerlink" href="#_CPPv4N31memcached_server_distribution_t37MEMCACHED_DISTRIBUTION_VIRTUAL_BUCKETE" title="Permalink to this definition"></a><br /></dt>
644 <dd><p>Consistent key distribution by virtual buckets.</p>
645 </dd></dl>
646
647 </dd></dl>
648
649 </div>
650 <div class="section" id="description">
651 <h2>DESCRIPTION<a class="headerlink" href="#description" title="Permalink to this headline"></a></h2>
652 <p><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">libmemcached</span></code> behavior can be modified by using <a class="reference internal" href="#_CPPv422memcached_behavior_setP12memcached_st20memcached_behavior_t8uint64_t" title="memcached_behavior_set"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_behavior_set()</span></code></a>.
653 Default behavior is the library strives to be quick and accurate. Some behavior,
654 while being faster, can also result in not entirely accurate behavior (for
655 instance, <a class="reference internal" href="memcached_set.html#_CPPv413memcached_setP12memcached_stPKc6size_tPKc6size_t6time_t8uint32_t" title="memcached_set"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_set()</span></code></a> will always respond with <a class="reference internal" href="memcached_return_t.html#_CPPv4N18memcached_return_t17MEMCACHED_SUCCESSE" title="MEMCACHED_SUCCESS"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">MEMCACHED_SUCCESS</span></code></a>).</p>
656 <p><a class="reference internal" href="#_CPPv422memcached_behavior_getP12memcached_st20memcached_behavior_t" title="memcached_behavior_get"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_behavior_get()</span></code></a> takes a behavior <code class="docutils literal notranslate"><span class="pre">flag</span></code> and returns whether or not
657 that behavior is currently enabled in the client.</p>
658 <p><a class="reference internal" href="#_CPPv422memcached_behavior_setP12memcached_st20memcached_behavior_t8uint64_t" title="memcached_behavior_set"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_behavior_set()</span></code></a> changes the value of a particular option of the client.
659 It takes both a <code class="docutils literal notranslate"><span class="pre">flag</span></code> and a <code class="docutils literal notranslate"><span class="pre">value</span></code>. For simple on or off options you just
660 need to pass in a value of 1. Calls to <a class="reference internal" href="#_CPPv422memcached_behavior_setP12memcached_st20memcached_behavior_t8uint64_t" title="memcached_behavior_set"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_behavior_set()</span></code></a> will flush and
661 reset all connections.</p>
662 </div>
663 <div class="section" id="return-value">
664 <h2>RETURN VALUE<a class="headerlink" href="#return-value" title="Permalink to this headline"></a></h2>
665 <p><a class="reference internal" href="#_CPPv422memcached_behavior_getP12memcached_st20memcached_behavior_t" title="memcached_behavior_get"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_behavior_get()</span></code></a> returns either the current value of the key, or 0
666 or 1 on simple flag behaviors (1 being enabled). <a class="reference internal" href="#_CPPv422memcached_behavior_setP12memcached_st20memcached_behavior_t8uint64_t" title="memcached_behavior_set"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_behavior_set()</span></code></a>
667 returns failure or success.</p>
668 </div>
669 <div class="section" id="notes">
670 <h2>NOTES<a class="headerlink" href="#notes" title="Permalink to this headline"></a></h2>
671 <p>The <code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">data</span></code> argument of <a class="reference internal" href="#_CPPv422memcached_behavior_setP12memcached_st20memcached_behavior_t8uint64_t" title="memcached_behavior_set"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_behavior_set()</span></code></a> was changed in version
672 0.17 from taking a pointer to data value, to taking a uin64_t.</p>
673 </div>
674 <div class="section" id="see-also">
675 <h2>SEE ALSO<a class="headerlink" href="#see-also" title="Permalink to this headline"></a></h2>
676 <ul class="simple">
677 <li><p><em class="manpage"><a class="manpage reference external" href="https://linux.die.net/man/1/memcached">memcached(1)</a></em></p></li>
678 <li><p><em class="manpage"><a class="manpage reference external" href="https://linux.die.net/man/3/setsockopt">setsockopt(3)</a></em></p></li>
679 <li><p><a class="reference internal" href="../libmemcached.html"><span class="doc">C/C++ Client Library for memcached</span></a></p></li>
680 <li><p><a class="reference internal" href="memcached_strerror.html"><span class="doc">Converting Error Codes to Messages</span></a></p></li>
681 </ul>
682 </div>
683 </div>
684
685
686 </div>
687
688 </div>
689 <footer>
690
691 <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
692
693 <a href="memcached_callback.html" class="btn btn-neutral float-right" title="Library callbacks" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
694
695
696 <a href="index_advanced_internals.html" class="btn btn-neutral float-left" title="Internal Behavior" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
697
698 </div>
699
700
701 <hr/>
702
703 <div role="contentinfo">
704 <p>
705
706
707 &copy; <a href="../copyright.html">Copyright</a>
708
709 </p>
710 </div>
711
712
713
714 Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
715
716 <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a>
717
718 provided by <a href="https://readthedocs.org">Read the Docs</a>.
719
720 </footer>
721
722 </div>
723 </div>
724
725 </section>
726
727 </div>
728
729
730 <script type="text/javascript">
731 jQuery(function () {
732 SphinxRtdTheme.Navigation.enable(true);
733 });
734 </script>
735
736
737
738
739
740
741 </body>
742 </html>