update docs
[m6w6/libmemcached] / libmemcached / memcached_set.html
1
2
3 <!DOCTYPE html>
4 <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
5 <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
6 <head>
7 <meta charset="utf-8">
8
9 <meta name="viewport" content="width=device-width, initial-scale=1.0">
10
11 <title>Storing data on the server &mdash; libmemcached 1.0.99 documentation</title>
12
13
14
15
16
17
18
19
20 <script type="text/javascript" src="../_static/js/modernizr.min.js"></script>
21
22
23 <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
24 <script src="../_static/jquery.js"></script>
25 <script src="../_static/underscore.js"></script>
26 <script src="../_static/doctools.js"></script>
27 <script src="../_static/language_data.js"></script>
28
29 <script type="text/javascript" src="../_static/js/theme.js"></script>
30
31
32
33
34 <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
35 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
36 <link rel="index" title="Index" href="../genindex.html" />
37 <link rel="search" title="Search" href="../search.html" />
38 <link rel="copyright" title="Copyright" href="../copyright.html" />
39 <link rel="next" title="Deleting data from a server" href="memcached_delete.html" />
40 <link rel="prev" title="Retrieving data from the server" href="memcached_get.html" />
41 </head>
42
43 <body class="wy-body-for-nav">
44
45
46 <div class="wy-grid-for-nav">
47
48 <nav data-toggle="wy-nav-shift" class="wy-nav-side">
49 <div class="wy-side-scroll">
50 <div class="wy-side-nav-search" >
51
52
53
54 <a href="../index.html" class="icon icon-home"> libmemcached
55
56
57
58 </a>
59
60
61
62
63 <div class="version">
64 1.0
65 </div>
66
67
68
69
70 <div role="search">
71 <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
72 <input type="text" name="q" placeholder="Search docs" />
73 <input type="hidden" name="check_keywords" value="yes" />
74 <input type="hidden" name="area" value="default" />
75 </form>
76 </div>
77
78
79 </div>
80
81 <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
82
83
84
85
86
87
88 <p class="caption"><span class="caption-text">libmemcached</span></p>
89 <ul class="current">
90 <li class="toctree-l1"><a class="reference internal" href="../libmemcached.html">Introduction</a></li>
91 <li class="toctree-l1 current"><a class="reference internal" href="index.html">libmemcached API</a><ul class="current">
92 <li class="toctree-l2 current"><a class="reference internal" href="index_basics.html">Basics</a><ul class="current">
93 <li class="toctree-l3"><a class="reference internal" href="memcached_create.html">Creating and destroying a memcached_st</a></li>
94 <li class="toctree-l3"><a class="reference internal" href="memcached_get.html">Retrieving data from the server</a></li>
95 <li class="toctree-l3 current"><a class="current reference internal" href="#">Storing data on the server</a></li>
96 <li class="toctree-l3"><a class="reference internal" href="memcached_delete.html">Deleting data from a server</a></li>
97 <li class="toctree-l3"><a class="reference internal" href="memcached_quit.html">Disconnecting a client from a server</a></li>
98 </ul>
99 </li>
100 <li class="toctree-l2"><a class="reference internal" href="index_data.html">Working with Data</a></li>
101 <li class="toctree-l2"><a class="reference internal" href="index_errors.html">Messages and Errors</a></li>
102 <li class="toctree-l2"><a class="reference internal" href="index_advanced.html">Advanced Topics</a></li>
103 <li class="toctree-l2"><a class="reference internal" href="index_deprecated.html">Deprecated Functionality</a></li>
104 </ul>
105 </li>
106 <li class="toctree-l1"><a class="reference internal" href="index_misc.html">Misc</a></li>
107 </ul>
108 <p class="caption"><span class="caption-text">libmemcachedutil</span></p>
109 <ul>
110 <li class="toctree-l1"><a class="reference internal" href="../libmemcachedutil.html">Introduction</a></li>
111 <li class="toctree-l1"><a class="reference internal" href="../libmemcachedutil/index.html">libmemcachedutil API</a></li>
112 </ul>
113 <p class="caption"><span class="caption-text">libhashkit</span></p>
114 <ul>
115 <li class="toctree-l1"><a class="reference internal" href="../libhashkit.html">Introduction</a></li>
116 <li class="toctree-l1"><a class="reference internal" href="../libhashkit/index.html">libhashkit API</a></li>
117 </ul>
118 <p class="caption"><span class="caption-text">Client Applications</span></p>
119 <ul>
120 <li class="toctree-l1"><a class="reference internal" href="../bin/index.html">Client Applications</a></li>
121 </ul>
122 <p class="caption"><span class="caption-text">Copyright</span></p>
123 <ul>
124 <li class="toctree-l1"><a class="reference internal" href="../copyright.html">Copyright</a></li>
125 </ul>
126
127
128
129 </div>
130 </div>
131 </nav>
132
133 <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
134
135
136 <nav class="wy-nav-top" aria-label="top navigation">
137
138 <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
139 <a href="../index.html">libmemcached</a>
140
141 </nav>
142
143
144 <div class="wy-nav-content">
145
146 <div class="rst-content">
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164 <div role="navigation" aria-label="breadcrumbs navigation">
165
166 <ul class="wy-breadcrumbs">
167
168 <li><a href="../index.html">Docs</a> &raquo;</li>
169
170 <li><a href="index.html">libmemcached API</a> &raquo;</li>
171
172 <li><a href="index_basics.html">Basics</a> &raquo;</li>
173
174 <li>Storing data on the server</li>
175
176
177 <li class="wy-breadcrumbs-aside">
178
179
180
181 </li>
182
183 </ul>
184
185
186 <hr/>
187 </div>
188 <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
189 <div itemprop="articleBody">
190
191 <div class="section" id="storing-data-on-the-server">
192 <h1>Storing data on the server<a class="headerlink" href="#storing-data-on-the-server" title="Permalink to this headline"></a></h1>
193 <div class="section" id="synopsis">
194 <span id="index-0"></span><h2>SYNOPSIS<a class="headerlink" href="#synopsis" title="Permalink to this headline"></a></h2>
195 <dl class="simple">
196 <dt>#include &lt;libmemcached/memcached.h&gt;</dt><dd><p>Compile and link with -lmemcached</p>
197 </dd>
198 </dl>
199 <dl class="cpp function">
200 <dt id="_CPPv413memcached_setP12memcached_stPKc6size_tPKc6size_t6time_t8uint32_t">
201 <span id="_CPPv313memcached_setP12memcached_stPKc6size_tPKc6size_t6time_t8uint32_t"></span><span id="_CPPv213memcached_setP12memcached_stPKc6size_tPKc6size_t6time_t8uint32_t"></span><span id="memcached_set__memcached_stP.cCP.s.cCP.s.time_t.uint32_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_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>, <em class="property">const</em> char *<em>key</em>, size_t <em>key_length</em>, <em class="property">const</em> char *<em>value</em>, size_t <em>value_length</em>, time_t <em>expiration</em>, uint32_t <em>flags</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv413memcached_setP12memcached_stPKc6size_tPKc6size_t6time_t8uint32_t" title="Permalink to this definition"></a><br /></dt>
202 <dd></dd></dl>
203
204 <dl class="cpp function">
205 <dt id="_CPPv413memcached_addP12memcached_stPKc6size_tPKc6size_t6time_t8uint32_t">
206 <span id="_CPPv313memcached_addP12memcached_stPKc6size_tPKc6size_t6time_t8uint32_t"></span><span id="_CPPv213memcached_addP12memcached_stPKc6size_tPKc6size_t6time_t8uint32_t"></span><span id="memcached_add__memcached_stP.cCP.s.cCP.s.time_t.uint32_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_add</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>, <em class="property">const</em> char *<em>key</em>, size_t <em>key_length</em>, <em class="property">const</em> char *<em>value</em>, size_t <em>value_length</em>, time_t <em>expiration</em>, uint32_t <em>flags</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv413memcached_addP12memcached_stPKc6size_tPKc6size_t6time_t8uint32_t" title="Permalink to this definition"></a><br /></dt>
207 <dd></dd></dl>
208
209 <dl class="cpp function">
210 <dt id="_CPPv417memcached_replaceP12memcached_stPKc6size_tPKc6size_t6time_t8uint32_t">
211 <span id="_CPPv317memcached_replaceP12memcached_stPKc6size_tPKc6size_t6time_t8uint32_t"></span><span id="_CPPv217memcached_replaceP12memcached_stPKc6size_tPKc6size_t6time_t8uint32_t"></span><span id="memcached_replace__memcached_stP.cCP.s.cCP.s.time_t.uint32_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_replace</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>, <em class="property">const</em> char *<em>key</em>, size_t <em>key_length</em>, <em class="property">const</em> char *<em>value</em>, size_t <em>value_length</em>, time_t <em>expiration</em>, uint32_t <em>flags</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv417memcached_replaceP12memcached_stPKc6size_tPKc6size_t6time_t8uint32_t" title="Permalink to this definition"></a><br /></dt>
212 <dd></dd></dl>
213
214 <dl class="cpp function">
215 <dt id="_CPPv420memcached_set_by_keyP12memcached_stPKc6size_tPKc6size_tPKc6size_t6time_t8uint32_t">
216 <span id="_CPPv320memcached_set_by_keyP12memcached_stPKc6size_tPKc6size_tPKc6size_t6time_t8uint32_t"></span><span id="_CPPv220memcached_set_by_keyP12memcached_stPKc6size_tPKc6size_tPKc6size_t6time_t8uint32_t"></span><span id="memcached_set_by_key__memcached_stP.cCP.s.cCP.s.cCP.s.time_t.uint32_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_set_by_key</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>, <em class="property">const</em> char *<em>group_key</em>, size_t <em>group_key_length</em>, <em class="property">const</em> char *<em>key</em>, size_t <em>key_length</em>, <em class="property">const</em> char *<em>value</em>, size_t <em>value_length</em>, time_t <em>expiration</em>, uint32_t <em>flags</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv420memcached_set_by_keyP12memcached_stPKc6size_tPKc6size_tPKc6size_t6time_t8uint32_t" title="Permalink to this definition"></a><br /></dt>
217 <dd></dd></dl>
218
219 <dl class="cpp function">
220 <dt id="_CPPv420memcached_add_by_keyP12memcached_stPKc6size_tPKc6size_tPKc6size_t6time_t8uint32_t">
221 <span id="_CPPv320memcached_add_by_keyP12memcached_stPKc6size_tPKc6size_tPKc6size_t6time_t8uint32_t"></span><span id="_CPPv220memcached_add_by_keyP12memcached_stPKc6size_tPKc6size_tPKc6size_t6time_t8uint32_t"></span><span id="memcached_add_by_key__memcached_stP.cCP.s.cCP.s.cCP.s.time_t.uint32_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_add_by_key</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>, <em class="property">const</em> char *<em>group_key</em>, size_t <em>group_key_length</em>, <em class="property">const</em> char *<em>key</em>, size_t <em>key_length</em>, <em class="property">const</em> char *<em>value</em>, size_t <em>value_length</em>, time_t <em>expiration</em>, uint32_t <em>flags</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv420memcached_add_by_keyP12memcached_stPKc6size_tPKc6size_tPKc6size_t6time_t8uint32_t" title="Permalink to this definition"></a><br /></dt>
222 <dd></dd></dl>
223
224 <dl class="cpp function">
225 <dt id="_CPPv424memcached_replace_by_keyP12memcached_stPKc6size_tPKc6size_tPKc6size_t6time_t8uint32_t">
226 <span id="_CPPv324memcached_replace_by_keyP12memcached_stPKc6size_tPKc6size_tPKc6size_t6time_t8uint32_t"></span><span id="_CPPv224memcached_replace_by_keyP12memcached_stPKc6size_tPKc6size_tPKc6size_t6time_t8uint32_t"></span><span id="memcached_replace_by_key__memcached_stP.cCP.s.cCP.s.cCP.s.time_t.uint32_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_replace_by_key</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>, <em class="property">const</em> char *<em>group_key</em>, size_t <em>group_key_length</em>, <em class="property">const</em> char *<em>key</em>, size_t <em>key_length</em>, <em class="property">const</em> char *<em>value</em>, size_t <em>value_length</em>, time_t <em>expiration</em>, uint32_t <em>flags</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv424memcached_replace_by_keyP12memcached_stPKc6size_tPKc6size_tPKc6size_t6time_t8uint32_t" title="Permalink to this definition"></a><br /></dt>
227 <dd></dd></dl>
228
229 </div>
230 <div class="section" id="description">
231 <h2>DESCRIPTION<a class="headerlink" href="#description" title="Permalink to this headline"></a></h2>
232 <p><a class="reference internal" href="#_CPPv413memcached_setP12memcached_stPKc6size_tPKc6size_t6time_t8uint32_t" title="memcached_set"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">memcached_set()</span></code></a>, <a class="reference internal" href="#_CPPv413memcached_addP12memcached_stPKc6size_tPKc6size_t6time_t8uint32_t" title="memcached_add"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">memcached_add()</span></code></a>, and <a class="reference internal" href="#_CPPv417memcached_replaceP12memcached_stPKc6size_tPKc6size_t6time_t8uint32_t" title="memcached_replace"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">memcached_replace()</span></code></a> are all used to store information on the server. All methods take a key, and its length to store the object. Keys are currently limited to 250 characters when using either a version of memcached(1) which is 1.4 or below, or when using the text protocol. You must supply both a value and a length. Optionally you
233 store the object. Keys are currently limited to 250 characters by the
234 memcached(1) server. You must supply both a value and a length. Optionally you
235 may test an expiration time for the object and a 16 byte value (it is meant to be used as a bitmap). &quot;flags&quot; is a 4byte space that is stored alongside of the main value. Many sub libraries make use of this field, so in most cases users should avoid making use of it.</p>
236 <p><a class="reference internal" href="#_CPPv413memcached_setP12memcached_stPKc6size_tPKc6size_t6time_t8uint32_t" title="memcached_set"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">memcached_set()</span></code></a> will write an object to the server. If an object
237 already exists it will overwrite what is in the server. If the object does not
238 exist it will be written. If you are using the non-blocking mode this function
239 will always return true unless a network error occurs.</p>
240 <p><a class="reference internal" href="#_CPPv417memcached_replaceP12memcached_stPKc6size_tPKc6size_t6time_t8uint32_t" title="memcached_replace"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">memcached_replace()</span></code></a> replaces an object on the server. If the object is not found on the server an error occurs.</p>
241 <p><a class="reference internal" href="#_CPPv413memcached_addP12memcached_stPKc6size_tPKc6size_t6time_t8uint32_t" title="memcached_add"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">memcached_add()</span></code></a> adds an object to the server. If the object is found on the server an error occurs, otherwise the value is stored.</p>
242 <p><a class="reference internal" href="#_CPPv420memcached_set_by_keyP12memcached_stPKc6size_tPKc6size_tPKc6size_t6time_t8uint32_t" title="memcached_set_by_key"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">memcached_set_by_key()</span></code></a>, <a class="reference internal" href="#_CPPv420memcached_add_by_keyP12memcached_stPKc6size_tPKc6size_tPKc6size_t6time_t8uint32_t" title="memcached_add_by_key"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">memcached_add_by_key()</span></code></a>, and <a class="reference internal" href="#_CPPv424memcached_replace_by_keyP12memcached_stPKc6size_tPKc6size_tPKc6size_t6time_t8uint32_t" title="memcached_replace_by_key"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">memcached_replace_by_key()</span></code></a> methods all behave in a similar method as the non
243 key methods. The difference is that they use their group_key parameter to map
244 objects to particular servers.</p>
245 <p>If you are looking for performance, <a class="reference internal" href="#_CPPv413memcached_setP12memcached_stPKc6size_tPKc6size_t6time_t8uint32_t" title="memcached_set"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">memcached_set()</span></code></a> with non-blocking IO is the fastest way to store data on the server.</p>
246 <p>All of the above functions are tested with the <code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">MEMCACHED_BEHAVIOR_USE_UDP</span></code> behavior enabled. However, when using these operations with this behavior
247 on, there are limits to the size of the payload being sent to the server.
248 The reason for these limits is that the Memcached Server does not allow
249 multi-datagram requests and the current server implementation sets a datagram
250 size to 1400 bytes. Due to protocol overhead, the actual limit of the user supplied data is less than 1400 bytes and depends on the protocol in use as, well as the operation being
251 executed. When running with the binary protocol, <code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">MEMCACHED_BEHAVIOR_BINARY_PROTOCOL</span></code>, the size of the key,value, flags and expiry combined may not
252 exceed 1368 bytes. When running with the ASCII protocol, the exact limit fluctuates depending on which function is being executed and whether the function is a cas operation or not. For non-cas ASCII set operations, there are at least
253 1335 bytes available to split among the key, key_prefix, and value; for cas
254 ASCII operations there are at least 1318 bytes available to split among the key, key_prefix and value. If the total size of the command, including overhead,
255 exceeds 1400 bytes, a <a class="reference internal" href="memcached_return_t.html#_CPPv4N18memcached_return_t23MEMCACHED_WRITE_FAILUREE" title="MEMCACHED_WRITE_FAILURE"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">MEMCACHED_WRITE_FAILURE</span></code></a> will be returned.</p>
256 </div>
257 <div class="section" id="return-value">
258 <h2>RETURN VALUE<a class="headerlink" href="#return-value" title="Permalink to this headline"></a></h2>
259 <p>All methods return a value of type <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>.
260 On success the value will be <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>.
261 Use <a class="reference internal" href="memcached_strerror.html#_CPPv418memcached_strerrorP12memcached_st18memcached_return_t" title="memcached_strerror"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">memcached_strerror()</span></code></a> to translate this value to a printable string.</p>
262 <p>For <a class="reference internal" href="#_CPPv417memcached_replaceP12memcached_stPKc6size_tPKc6size_t6time_t8uint32_t" title="memcached_replace"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">memcached_replace()</span></code></a> and <a class="reference internal" href="#_CPPv413memcached_addP12memcached_stPKc6size_tPKc6size_t6time_t8uint32_t" title="memcached_add"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">memcached_add()</span></code></a>, <a class="reference internal" href="memcached_return_t.html#_CPPv4N18memcached_return_t19MEMCACHED_NOTSTOREDE" title="MEMCACHED_NOTSTORED"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">MEMCACHED_NOTSTORED</span></code></a>
263 is a legitimate error in the case of a collision.</p>
264 </div>
265 <div class="section" id="see-also">
266 <h2>SEE ALSO<a class="headerlink" href="#see-also" title="Permalink to this headline"></a></h2>
267 </div>
268 </div>
269
270
271 </div>
272
273 </div>
274 <footer>
275
276 <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
277
278 <a href="memcached_delete.html" class="btn btn-neutral float-right" title="Deleting data from a server" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
279
280
281 <a href="memcached_get.html" class="btn btn-neutral float-left" title="Retrieving data from the server" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
282
283 </div>
284
285
286 <hr/>
287
288 <div role="contentinfo">
289 <p>
290 &copy; <a href="../copyright.html">Copyright</a>
291
292 </p>
293 </div>
294 Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
295
296 </footer>
297
298 </div>
299 </div>
300
301 </section>
302
303 </div>
304
305
306
307 <script type="text/javascript">
308 jQuery(function () {
309 SphinxRtdTheme.Navigation.enable(true);
310 });
311 </script>
312
313
314
315
316
317
318 </body>
319 </html>