3a798e996d0f656035f9149cc02a13d38b4469e1
[m6w6/libmemcached] / libmemcached / memcached_auto.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>Incrementing and Decrementing Values &mdash; libmemcached 1.1.0 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 type="text/javascript" src="../_static/jquery.js"></script>
25 <script type="text/javascript" src="../_static/underscore.js"></script>
26 <script type="text/javascript" src="../_static/doctools.js"></script>
27 <script type="text/javascript" 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="Determine if a keys exists" href="memcached_exist.html" />
40 <link rel="prev" title="Working with Data" href="index_data.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.1
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 <ul class="current">
89 <li class="toctree-l1"><a class="reference internal" href="../libmemcached.html">Introduction</a></li>
90 <li class="toctree-l1 current"><a class="reference internal" href="index.html">libmemcached API</a><ul class="current">
91 <li class="toctree-l2"><a class="reference internal" href="index_basics.html">Basics</a></li>
92 <li class="toctree-l2 current"><a class="reference internal" href="index_data.html">Working with Data</a><ul class="current">
93 <li class="toctree-l3 current"><a class="current reference internal" href="#">Incrementing and Decrementing Values</a></li>
94 <li class="toctree-l3"><a class="reference internal" href="memcached_exist.html">Determine if a keys exists</a></li>
95 <li class="toctree-l3"><a class="reference internal" href="memcached_touch.html">Update expiration on a key</a></li>
96 <li class="toctree-l3"><a class="reference internal" href="memcached_flush_buffers.html">Flush and send buffered commands</a></li>
97 <li class="toctree-l3"><a class="reference internal" href="memcached_result_st.html">Working with result sets</a></li>
98 <li class="toctree-l3"><a class="reference internal" href="memcached_append.html">Appending or Prepending Data</a></li>
99 <li class="toctree-l3"><a class="reference internal" href="memcached_cas.html">Working with data on the server in an atomic fashion</a></li>
100 </ul>
101 </li>
102 <li class="toctree-l2"><a class="reference internal" href="index_errors.html">Messages and Errors</a></li>
103 <li class="toctree-l2"><a class="reference internal" href="index_advanced.html">Advanced Topics</a></li>
104 <li class="toctree-l2"><a class="reference internal" href="index_deprecated.html">Deprecated Functionality</a></li>
105 </ul>
106 </li>
107 <li class="toctree-l1"><a class="reference internal" href="../libmemcachedutil/index.html">libmemcachedutil API</a></li>
108 <li class="toctree-l1"><a class="reference internal" href="../libhashkit/index.html">libhashkit API</a></li>
109 <li class="toctree-l1"><a class="reference internal" href="../bin/index.html">Client Applications</a></li>
110 <li class="toctree-l1"><a class="reference internal" href="index_misc.html">Miscellaneous</a></li>
111 </ul>
112 <ul>
113 <li class="toctree-l1"><a class="reference internal" href="../changelogs.html">Change Logs</a></li>
114 <li class="toctree-l1"><a class="reference internal" href="../copyright.html">Copyright</a></li>
115 </ul>
116
117
118
119 </div>
120 </div>
121 </nav>
122
123 <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
124
125
126 <nav class="wy-nav-top" aria-label="top navigation">
127
128 <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
129 <a href="../index.html">libmemcached</a>
130
131 </nav>
132
133
134 <div class="wy-nav-content">
135
136 <div class="rst-content">
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154 <div role="navigation" aria-label="breadcrumbs navigation">
155
156 <ul class="wy-breadcrumbs">
157
158 <li><a href="../index.html">Docs</a> &raquo;</li>
159
160 <li><a href="index.html">libmemcached API</a> &raquo;</li>
161
162 <li><a href="index_data.html">Working with Data</a> &raquo;</li>
163
164 <li>Incrementing and Decrementing Values</li>
165
166
167 <li class="wy-breadcrumbs-aside">
168
169
170
171 <a href="https://github.com/m6w6/libmemcached/blob/v1.x/docs/source/libmemcached/memcached_auto.rst" class="fa fa-github"> Edit on GitHub</a>
172
173
174
175 </li>
176
177 </ul>
178
179
180 <hr/>
181 </div>
182 <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
183 <div itemprop="articleBody">
184
185 <div class="section" id="incrementing-and-decrementing-values">
186 <h1>Incrementing and Decrementing Values<a class="headerlink" href="#incrementing-and-decrementing-values" title="Permalink to this headline"></a></h1>
187 <div class="section" id="synopsis">
188 <h2>SYNOPSIS<a class="headerlink" href="#synopsis" title="Permalink to this headline"></a></h2>
189 <dl class="docutils">
190 <dt>#include &lt;libmemcached/memcached.h&gt;</dt>
191 <dd>Compile and link with -lmemcached</dd>
192 </dl>
193 <dl class="function">
194 <dt id="_CPPv419memcached_incrementP12memcached_stPKc6size_t8uint32_tP8uint64_t">
195 <span id="_CPPv319memcached_incrementP12memcached_stPKc6size_t8uint32_tP8uint64_t"></span><span id="_CPPv219memcached_incrementP12memcached_stPKc6size_t8uint32_tP8uint64_t"></span><span id="memcached_increment__memcached_stP.cCP.s.uint32_t.uint64_tP"></span><a class="reference internal" href="memcached_return_t.html#_CPPv418memcached_return_t" title="memcached_return_t">memcached_return_t</a> <code class="descname">memcached_increment</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>, uint32_t <em>offset</em>, uint64_t *<em>value</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419memcached_incrementP12memcached_stPKc6size_t8uint32_tP8uint64_t" title="Permalink to this definition"></a><br /></dt>
196 <dd></dd></dl>
197
198 <dl class="function">
199 <dt id="_CPPv419memcached_decrementP12memcached_stPKc6size_t8uint32_tP8uint64_t">
200 <span id="_CPPv319memcached_decrementP12memcached_stPKc6size_t8uint32_tP8uint64_t"></span><span id="_CPPv219memcached_decrementP12memcached_stPKc6size_t8uint32_tP8uint64_t"></span><span id="memcached_decrement__memcached_stP.cCP.s.uint32_t.uint64_tP"></span><a class="reference internal" href="memcached_return_t.html#_CPPv418memcached_return_t" title="memcached_return_t">memcached_return_t</a> <code class="descname">memcached_decrement</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>, uint32_t <em>offset</em>, uint64_t *<em>value</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419memcached_decrementP12memcached_stPKc6size_t8uint32_tP8uint64_t" title="Permalink to this definition"></a><br /></dt>
201 <dd></dd></dl>
202
203 <dl class="function">
204 <dt id="_CPPv432memcached_increment_with_initialP12memcached_stPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t">
205 <span id="_CPPv332memcached_increment_with_initialP12memcached_stPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t"></span><span id="_CPPv232memcached_increment_with_initialP12memcached_stPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t"></span><span id="memcached_increment_with_initial__memcached_stP.cCP.s.uint64_t.uint64_t.time_t.uint64_tP"></span><a class="reference internal" href="memcached_return_t.html#_CPPv418memcached_return_t" title="memcached_return_t">memcached_return_t</a> <code class="descname">memcached_increment_with_initial</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>, uint64_t <em>offset</em>, uint64_t <em>initial</em>, time_t <em>expiration</em>, uint64_t *<em>value</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv432memcached_increment_with_initialP12memcached_stPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t" title="Permalink to this definition"></a><br /></dt>
206 <dd></dd></dl>
207
208 <dl class="function">
209 <dt id="_CPPv432memcached_decrement_with_initialP12memcached_stPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t">
210 <span id="_CPPv332memcached_decrement_with_initialP12memcached_stPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t"></span><span id="_CPPv232memcached_decrement_with_initialP12memcached_stPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t"></span><span id="memcached_decrement_with_initial__memcached_stP.cCP.s.uint64_t.uint64_t.time_t.uint64_tP"></span><a class="reference internal" href="memcached_return_t.html#_CPPv418memcached_return_t" title="memcached_return_t">memcached_return_t</a> <code class="descname">memcached_decrement_with_initial</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>, uint64_t <em>offset</em>, uint64_t <em>initial</em>, time_t <em>expiration</em>, uint64_t *<em>value</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv432memcached_decrement_with_initialP12memcached_stPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t" title="Permalink to this definition"></a><br /></dt>
211 <dd></dd></dl>
212
213 <dl class="function">
214 <dt id="_CPPv426memcached_increment_by_keyP12memcached_stPKc6size_tPKc6size_t8uint32_tP8uint64_t">
215 <span id="_CPPv326memcached_increment_by_keyP12memcached_stPKc6size_tPKc6size_t8uint32_tP8uint64_t"></span><span id="_CPPv226memcached_increment_by_keyP12memcached_stPKc6size_tPKc6size_t8uint32_tP8uint64_t"></span><span id="memcached_increment_by_key__memcached_stP.cCP.s.cCP.s.uint32_t.uint64_tP"></span><a class="reference internal" href="memcached_return_t.html#_CPPv418memcached_return_t" title="memcached_return_t">memcached_return_t</a> <code class="descname">memcached_increment_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>, uint32_t <em>offset</em>, uint64_t *<em>value</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv426memcached_increment_by_keyP12memcached_stPKc6size_tPKc6size_t8uint32_tP8uint64_t" title="Permalink to this definition"></a><br /></dt>
216 <dd></dd></dl>
217
218 <dl class="function">
219 <dt id="_CPPv426memcached_decrement_by_keyP12memcached_stPKc6size_tPKc6size_t8uint32_tP8uint64_t">
220 <span id="_CPPv326memcached_decrement_by_keyP12memcached_stPKc6size_tPKc6size_t8uint32_tP8uint64_t"></span><span id="_CPPv226memcached_decrement_by_keyP12memcached_stPKc6size_tPKc6size_t8uint32_tP8uint64_t"></span><span id="memcached_decrement_by_key__memcached_stP.cCP.s.cCP.s.uint32_t.uint64_tP"></span><a class="reference internal" href="memcached_return_t.html#_CPPv418memcached_return_t" title="memcached_return_t">memcached_return_t</a> <code class="descname">memcached_decrement_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>, uint32_t <em>offset</em>, uint64_t *<em>value</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv426memcached_decrement_by_keyP12memcached_stPKc6size_tPKc6size_t8uint32_tP8uint64_t" title="Permalink to this definition"></a><br /></dt>
221 <dd></dd></dl>
222
223 <dl class="function">
224 <dt id="_CPPv439memcached_increment_with_initial_by_keyP12memcached_stPKc6size_tPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t">
225 <span id="_CPPv339memcached_increment_with_initial_by_keyP12memcached_stPKc6size_tPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t"></span><span id="_CPPv239memcached_increment_with_initial_by_keyP12memcached_stPKc6size_tPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t"></span><span id="memcached_increment_with_initial_by_key__memcached_stP.cCP.s.cCP.s.uint64_t.uint64_t.time_t.uint64_tP"></span><a class="reference internal" href="memcached_return_t.html#_CPPv418memcached_return_t" title="memcached_return_t">memcached_return_t</a> <code class="descname">memcached_increment_with_initial_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>, uint64_t <em>offset</em>, uint64_t <em>initial</em>, time_t <em>expiration</em>, uint64_t *<em>value</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv439memcached_increment_with_initial_by_keyP12memcached_stPKc6size_tPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t" title="Permalink to this definition"></a><br /></dt>
226 <dd></dd></dl>
227
228 <dl class="function">
229 <dt id="_CPPv439memcached_decrement_with_initial_by_keyP12memcached_stPKc6size_tPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t">
230 <span id="_CPPv339memcached_decrement_with_initial_by_keyP12memcached_stPKc6size_tPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t"></span><span id="_CPPv239memcached_decrement_with_initial_by_keyP12memcached_stPKc6size_tPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t"></span><span id="memcached_decrement_with_initial_by_key__memcached_stP.cCP.s.cCP.s.uint64_t.uint64_t.time_t.uint64_tP"></span><a class="reference internal" href="memcached_return_t.html#_CPPv418memcached_return_t" title="memcached_return_t">memcached_return_t</a> <code class="descname">memcached_decrement_with_initial_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>, uint64_t <em>offset</em>, uint64_t <em>initial</em>, time_t <em>expiration</em>, uint64_t *<em>value</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv439memcached_decrement_with_initial_by_keyP12memcached_stPKc6size_tPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t" title="Permalink to this definition"></a><br /></dt>
231 <dd><table class="docutils field-list" frame="void" rules="none">
232 <col class="field-name" />
233 <col class="field-body" />
234 <tbody valign="top">
235 <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
236 <li><strong>ptr</strong> -- pointer to an 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</li>
237 <li><strong>group_key</strong> -- key namespace</li>
238 <li><strong>group_key_length</strong> -- length of the key namespace without any terminating zero</li>
239 <li><strong>key</strong> -- the key</li>
240 <li><strong>key_length</strong> -- length of the key without any terminating zero</li>
241 <li><strong>offset</strong> -- offset to increment/decrement</li>
242 <li><strong>initial</strong> -- initial value if <a class="reference internal" href="#_CPPv439memcached_decrement_with_initial_by_keyP12memcached_stPKc6size_tPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t" title="memcached_decrement_with_initial_by_key::key"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">key</span></code></a> does not exist and <a class="reference internal" href="#_CPPv439memcached_decrement_with_initial_by_keyP12memcached_stPKc6size_tPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t" title="memcached_decrement_with_initial_by_key::expiration"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">expiration</span></code></a> is not <code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">MEMCACHED_EXPIRATION_NOT_ADD</span></code></li>
243 <li><strong>expiration</strong> -- expiration as a unix timestamp or as relative expiration time in seconds</li>
244 <li><strong>value</strong> -- the resulting value after initialization/increment/decrement</li>
245 </ul>
246 </td>
247 </tr>
248 <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last"><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>
249 </td>
250 </tr>
251 </tbody>
252 </table>
253 </dd></dl>
254
255 </div>
256 <div class="section" id="description">
257 <h2>DESCRIPTION<a class="headerlink" href="#description" title="Permalink to this headline"></a></h2>
258 <p><em class="manpage"><a class="manpage reference external" href="https://linux.die.net/man/1/memcached">memcached(1)</a></em> servers have the ability to increment and decrement keys
259 (overflow and underflow are not detected). This gives you the ability to use
260 memcached to generate shared sequences of values.</p>
261 <p><a class="reference internal" href="#_CPPv419memcached_incrementP12memcached_stPKc6size_t8uint32_tP8uint64_t" title="memcached_increment"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_increment()</span></code></a> takes a <code class="docutils literal notranslate"><span class="pre">key</span></code> and <code class="docutils literal notranslate"><span class="pre">key_length</span></code> and increments the
262 value by the <code class="docutils literal notranslate"><span class="pre">offset</span></code> passed to it. The value is then returned via the
263 uint32_t <code class="docutils literal notranslate"><span class="pre">value</span></code> pointer you pass to it.</p>
264 <p><a class="reference internal" href="#_CPPv419memcached_decrementP12memcached_stPKc6size_t8uint32_tP8uint64_t" title="memcached_decrement"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_decrement()</span></code></a> takes a <code class="docutils literal notranslate"><span class="pre">key</span></code> and <code class="docutils literal notranslate"><span class="pre">key_length</span></code> and decrements the
265 value by the <code class="docutils literal notranslate"><span class="pre">offset</span></code> passed to it. The value is then returned via the
266 uint32_t <code class="docutils literal notranslate"><span class="pre">value</span></code> pointer you pass to it.</p>
267 <p><a class="reference internal" href="#_CPPv432memcached_increment_with_initialP12memcached_stPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t" title="memcached_increment_with_initial"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_increment_with_initial()</span></code></a> takes a <code class="docutils literal notranslate"><span class="pre">key</span></code> and <code class="docutils literal notranslate"><span class="pre">key_length</span></code> and
268 increments the value by the <code class="docutils literal notranslate"><span class="pre">offset</span></code> passed to it. If the object specified by
269 <code class="docutils literal notranslate"><span class="pre">key</span></code> does not exist, one of two things may happen: If the <code class="docutils literal notranslate"><span class="pre">expiration</span></code>
270 value is <a class="reference internal" href="constants.html#c.MEMCACHED_EXPIRATION_NOT_ADD" title="MEMCACHED_EXPIRATION_NOT_ADD"><code class="xref c c-macro docutils literal notranslate"><span class="pre">MEMCACHED_EXPIRATION_NOT_ADD</span></code></a>, the operation will fail. For
271 all other <code class="docutils literal notranslate"><span class="pre">expiration</span></code> values, the operation will succeed by seeding the value
272 for that key with a initial value to expire with the provided expiration time.
273 The <code class="docutils literal notranslate"><span class="pre">flags</span></code> will be set to zero. The value is then returned via the uint32_t
274 <code class="docutils literal notranslate"><span class="pre">value</span></code> pointer you pass to it. <code class="docutils literal notranslate"><span class="pre">memcached_increment_with_initial</span></code> is only
275 available when using the binary protocol.</p>
276 <p><a class="reference internal" href="#_CPPv432memcached_decrement_with_initialP12memcached_stPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t" title="memcached_decrement_with_initial"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_decrement_with_initial()</span></code></a> takes a <code class="docutils literal notranslate"><span class="pre">key</span></code> and <code class="docutils literal notranslate"><span class="pre">key_length</span></code> and
277 decrements the value by the <code class="docutils literal notranslate"><span class="pre">offset</span></code> passed to it. If the object specified by
278 <code class="docutils literal notranslate"><span class="pre">key</span></code> does not exist, one of two things may happen: If the <code class="docutils literal notranslate"><span class="pre">expiration</span></code>
279 value is <a class="reference internal" href="constants.html#c.MEMCACHED_EXPIRATION_NOT_ADD" title="MEMCACHED_EXPIRATION_NOT_ADD"><code class="xref c c-macro docutils literal notranslate"><span class="pre">MEMCACHED_EXPIRATION_NOT_ADD</span></code></a>, the operation will fail. For
280 all other <code class="docutils literal notranslate"><span class="pre">expiration</span></code> values, the operation will succeed by seeding the value
281 for that key with a initial value to expire with the provided expiration time.
282 The <code class="docutils literal notranslate"><span class="pre">flags</span></code> will be set to zero. The value is then returned via the uint32_t
283 <code class="docutils literal notranslate"><span class="pre">value</span></code> pointer you pass to it. <a class="reference internal" href="#_CPPv432memcached_decrement_with_initialP12memcached_stPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t" title="memcached_decrement_with_initial"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_decrement_with_initial()</span></code></a> is only
284 available when using the binary protocol.</p>
285 <p><a class="reference internal" href="#_CPPv426memcached_increment_by_keyP12memcached_stPKc6size_tPKc6size_t8uint32_tP8uint64_t" title="memcached_increment_by_key"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_increment_by_key()</span></code></a>, <a class="reference internal" href="#_CPPv426memcached_decrement_by_keyP12memcached_stPKc6size_tPKc6size_t8uint32_tP8uint64_t" title="memcached_decrement_by_key"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_decrement_by_key()</span></code></a>,
286 <a class="reference internal" href="#_CPPv439memcached_increment_with_initial_by_keyP12memcached_stPKc6size_tPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t" title="memcached_increment_with_initial_by_key"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_increment_with_initial_by_key()</span></code></a>, and
287 <a class="reference internal" href="#_CPPv439memcached_decrement_with_initial_by_keyP12memcached_stPKc6size_tPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t" title="memcached_decrement_with_initial_by_key"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_decrement_with_initial_by_key()</span></code></a> are master key equivalents of the
288 above.</p>
289 </div>
290 <div class="section" id="return-value">
291 <h2>RETURN VALUE<a class="headerlink" href="#return-value" title="Permalink to this headline"></a></h2>
292 <p>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> is returned.
293 On success that 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>.
294 Use <a class="reference internal" href="memcached_strerror.html#_CPPv418memcached_strerrorP12memcached_st18memcached_return_t" title="memcached_strerror"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_strerror()</span></code></a> to translate this value to a printable string.</p>
295 </div>
296 <div class="section" id="see-also">
297 <h2>SEE ALSO<a class="headerlink" href="#see-also" title="Permalink to this headline"></a></h2>
298 <ul class="simple">
299 <li><em class="manpage"><a class="manpage reference external" href="https://linux.die.net/man/1/memcached">memcached(1)</a></em></li>
300 <li><a class="reference internal" href="../libmemcached.html"><span class="doc">C/C++ Client Library for memcached</span></a></li>
301 <li><a class="reference internal" href="memcached_strerror.html"><span class="doc">Converting Error Codes to Messages</span></a></li>
302 </ul>
303 </div>
304 </div>
305
306
307 </div>
308
309 </div>
310 <footer>
311
312 <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
313
314 <a href="memcached_exist.html" class="btn btn-neutral float-right" title="Determine if a keys exists" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
315
316
317 <a href="index_data.html" class="btn btn-neutral float-left" title="Working with Data" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
318
319 </div>
320
321
322 <hr/>
323
324 <div role="contentinfo">
325 <p>
326 &copy; <a href="../copyright.html">Copyright</a>
327
328 </p>
329 </div>
330 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>.
331
332 </footer>
333
334 </div>
335 </div>
336
337 </section>
338
339 </div>
340
341
342
343 <script type="text/javascript">
344 jQuery(function () {
345 SphinxRtdTheme.Navigation.enable(true);
346 });
347 </script>
348
349
350
351
352
353
354 </body>
355 </html>