dcb652097bffc1492636e0652f8cac1db4d2bb8d
[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.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 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.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"><a class="reference internal" href="index_basics.html">Basics</a></li>
93 <li class="toctree-l2 current"><a class="reference internal" href="index_data.html">Working with Data</a><ul class="current">
94 <li class="toctree-l3 current"><a class="current reference internal" href="#">Incrementing and Decrementing Values</a></li>
95 <li class="toctree-l3"><a class="reference internal" href="memcached_exist.html">Determine if a keys exists</a></li>
96 <li class="toctree-l3"><a class="reference internal" href="memcached_touch.html">Update expiration on a key</a></li>
97 <li class="toctree-l3"><a class="reference internal" href="memcached_flush_buffers.html">Flush and send buffered commands</a></li>
98 <li class="toctree-l3"><a class="reference internal" href="memcached_result_st.html">Working with result sets</a></li>
99 <li class="toctree-l3"><a class="reference internal" href="memcached_append.html">Appending or Prepending Data</a></li>
100 <li class="toctree-l3"><a class="reference internal" href="memcached_cas.html">Working with data on the server in an atomic fashion</a></li>
101 </ul>
102 </li>
103 <li class="toctree-l2"><a class="reference internal" href="index_errors.html">Messages and Errors</a></li>
104 <li class="toctree-l2"><a class="reference internal" href="index_advanced.html">Advanced Topics</a></li>
105 <li class="toctree-l2"><a class="reference internal" href="index_deprecated.html">Deprecated Functionality</a></li>
106 </ul>
107 </li>
108 <li class="toctree-l1"><a class="reference internal" href="index_misc.html">Misc</a></li>
109 </ul>
110 <p class="caption"><span class="caption-text">libmemcachedutil</span></p>
111 <ul>
112 <li class="toctree-l1"><a class="reference internal" href="../libmemcachedutil.html">Introduction</a></li>
113 <li class="toctree-l1"><a class="reference internal" href="../libmemcachedutil/index.html">libmemcachedutil API</a></li>
114 </ul>
115 <p class="caption"><span class="caption-text">libhashkit</span></p>
116 <ul>
117 <li class="toctree-l1"><a class="reference internal" href="../libhashkit.html">Introduction</a></li>
118 <li class="toctree-l1"><a class="reference internal" href="../libhashkit/index.html">libhashkit API</a></li>
119 </ul>
120 <p class="caption"><span class="caption-text">Client Applications</span></p>
121 <ul>
122 <li class="toctree-l1"><a class="reference internal" href="../bin/index.html">Client Applications</a></li>
123 </ul>
124 <p class="caption"><span class="caption-text">Copyright</span></p>
125 <ul>
126 <li class="toctree-l1"><a class="reference internal" href="../copyright.html">Copyright</a></li>
127 </ul>
128
129
130
131 </div>
132 </div>
133 </nav>
134
135 <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
136
137
138 <nav class="wy-nav-top" aria-label="top navigation">
139
140 <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
141 <a href="../index.html">libmemcached</a>
142
143 </nav>
144
145
146 <div class="wy-nav-content">
147
148 <div class="rst-content">
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166 <div role="navigation" aria-label="breadcrumbs navigation">
167
168 <ul class="wy-breadcrumbs">
169
170 <li><a href="../index.html">Docs</a> &raquo;</li>
171
172 <li><a href="index.html">libmemcached API</a> &raquo;</li>
173
174 <li><a href="index_data.html">Working with Data</a> &raquo;</li>
175
176 <li>Incrementing and Decrementing Values</li>
177
178
179 <li class="wy-breadcrumbs-aside">
180
181
182
183 </li>
184
185 </ul>
186
187
188 <hr/>
189 </div>
190 <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
191 <div itemprop="articleBody">
192
193 <div class="section" id="incrementing-and-decrementing-values">
194 <h1>Incrementing and Decrementing Values<a class="headerlink" href="#incrementing-and-decrementing-values" title="Permalink to this headline"></a></h1>
195 <div class="section" id="synopsis">
196 <h2>SYNOPSIS<a class="headerlink" href="#synopsis" title="Permalink to this headline"></a></h2>
197 <dl class="docutils">
198 <dt>#include &lt;libmemcached/memcached.h&gt;</dt>
199 <dd>Compile and link with -lmemcached</dd>
200 </dl>
201 <dl class="function">
202 <dt id="_CPPv419memcached_incrementP12memcached_stPKc6size_t8uint32_tP8uint64_t">
203 <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>
204 <dd></dd></dl>
205
206 <dl class="function">
207 <dt id="_CPPv419memcached_decrementP12memcached_stPKc6size_t8uint32_tP8uint64_t">
208 <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>
209 <dd></dd></dl>
210
211 <dl class="function">
212 <dt id="_CPPv432memcached_increment_with_initialP12memcached_stPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t">
213 <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>
214 <dd></dd></dl>
215
216 <dl class="function">
217 <dt id="_CPPv432memcached_decrement_with_initialP12memcached_stPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t">
218 <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>
219 <dd></dd></dl>
220
221 <dl class="function">
222 <dt id="_CPPv426memcached_increment_by_keyP12memcached_stPKc6size_tPKc6size_t8uint32_tP8uint64_t">
223 <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>
224 <dd></dd></dl>
225
226 <dl class="function">
227 <dt id="_CPPv426memcached_decrement_by_keyP12memcached_stPKc6size_tPKc6size_t8uint32_tP8uint64_t">
228 <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>
229 <dd></dd></dl>
230
231 <dl class="function">
232 <dt id="_CPPv439memcached_increment_with_initial_by_keyP12memcached_stPKc6size_tPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t">
233 <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>
234 <dd></dd></dl>
235
236 <dl class="function">
237 <dt id="_CPPv439memcached_decrement_with_initial_by_keyP12memcached_stPKc6size_tPKc6size_t8uint64_t8uint64_t6time_tP8uint64_t">
238 <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>
239 <dd><table class="docutils field-list" frame="void" rules="none">
240 <col class="field-name" />
241 <col class="field-body" />
242 <tbody valign="top">
243 <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
244 <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>
245 <li><strong>group_key</strong> -- key namespace</li>
246 <li><strong>group_key_length</strong> -- length of the key namespace without any terminating zero</li>
247 <li><strong>key</strong> -- the key</li>
248 <li><strong>key_length</strong> -- length of the key without any terminating zero</li>
249 <li><strong>offset</strong> -- offset to increment/decrement</li>
250 <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>
251 <li><strong>expiration</strong> -- expiration as a unix timestamp or as relative expiration time in seconds</li>
252 <li><strong>value</strong> -- the resulting value after initialization/increment/decrement</li>
253 </ul>
254 </td>
255 </tr>
256 <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>
257 </td>
258 </tr>
259 </tbody>
260 </table>
261 </dd></dl>
262
263 </div>
264 <div class="section" id="description">
265 <h2>DESCRIPTION<a class="headerlink" href="#description" title="Permalink to this headline"></a></h2>
266 <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
267 (overflow and underflow are not detected). This gives you the ability to use
268 memcached to generate shared sequences of values.</p>
269 <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
270 value by the <code class="docutils literal notranslate"><span class="pre">offset</span></code> passed to it. The value is then returned via the
271 uint32_t <code class="docutils literal notranslate"><span class="pre">value</span></code> pointer you pass to it.</p>
272 <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
273 value by the <code class="docutils literal notranslate"><span class="pre">offset</span></code> passed to it. The value is then returned via the
274 uint32_t <code class="docutils literal notranslate"><span class="pre">value</span></code> pointer you pass to it.</p>
275 <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
276 increments the value by the <code class="docutils literal notranslate"><span class="pre">offset</span></code> passed to it. If the object specified by
277 <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>
278 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
279 all other <code class="docutils literal notranslate"><span class="pre">expiration</span></code> values, the operation will succeed by seeding the value
280 for that key with a initial value to expire with the provided expiration time.
281 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
282 <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
283 available when using the binary protocol.</p>
284 <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
285 decrements the value by the <code class="docutils literal notranslate"><span class="pre">offset</span></code> passed to it. If the object specified by
286 <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>
287 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
288 all other <code class="docutils literal notranslate"><span class="pre">expiration</span></code> values, the operation will succeed by seeding the value
289 for that key with a initial value to expire with the provided expiration time.
290 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
291 <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
292 available when using the binary protocol.</p>
293 <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>,
294 <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
295 <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
296 above.</p>
297 </div>
298 <div class="section" id="return-value">
299 <h2>RETURN VALUE<a class="headerlink" href="#return-value" title="Permalink to this headline"></a></h2>
300 <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.
301 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>.
302 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>
303 </div>
304 <div class="section" id="see-also">
305 <h2>SEE ALSO<a class="headerlink" href="#see-also" title="Permalink to this headline"></a></h2>
306 <ul class="simple">
307 <li><em class="manpage"><a class="manpage reference external" href="https://linux.die.net/man/1/memcached">memcached(1)</a></em></li>
308 <li><a class="reference internal" href="../libmemcached.html"><span class="doc">C/C++ Client Library for memcached</span></a></li>
309 <li><a class="reference internal" href="memcached_strerror.html"><span class="doc">Converting Error Codes to Messages</span></a></li>
310 </ul>
311 </div>
312 </div>
313
314
315 </div>
316
317 </div>
318 <footer>
319
320 <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
321
322 <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>
323
324
325 <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>
326
327 </div>
328
329
330 <hr/>
331
332 <div role="contentinfo">
333 <p>
334 &copy; <a href="../copyright.html">Copyright</a>
335
336 </p>
337 </div>
338 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>.
339
340 </footer>
341
342 </div>
343 </div>
344
345 </section>
346
347 </div>
348
349
350
351 <script type="text/javascript">
352 jQuery(function () {
353 SphinxRtdTheme.Navigation.enable(true);
354 });
355 </script>
356
357
358
359
360
361
362 </body>
363 </html>