localmemcache 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README +5 -2
- data/Rakefile +4 -0
- data/VERSION +1 -1
- data/bench/lmc_bench.rb +1 -1
- data/bench/tokyo_cabinet_bench +3 -0
- data/bench/tokyo_cabinet_bench.rb +20 -0
- data/site/doc/classes/LocalMemCache.html +146 -129
- data/site/doc/classes/LocalMemCache.src/M000001.html +1 -1
- data/site/doc/classes/LocalMemCache.src/M000002.html +26 -5
- data/site/doc/classes/LocalMemCache.src/M000003.html +16 -5
- data/site/doc/classes/LocalMemCache.src/M000004.html +7 -23
- data/site/doc/classes/LocalMemCache.src/M000005.html +7 -13
- data/site/doc/classes/LocalMemCache.src/M000006.html +4 -5
- data/site/doc/classes/LocalMemCache.src/M000007.html +6 -5
- data/site/doc/classes/LocalMemCache.src/M000008.html +6 -6
- data/site/doc/classes/LocalMemCache.src/M000009.html +1 -1
- data/site/doc/classes/LocalMemCache.src/M000010.html +4 -6
- data/site/doc/classes/LocalMemCache.src/M000011.html +4 -4
- data/site/doc/classes/LocalMemCache.src/M000012.html +4 -4
- data/site/doc/classes/LocalMemCache/ArgError.html +2 -2
- data/site/doc/classes/LocalMemCache/InitError.html +2 -2
- data/site/doc/classes/LocalMemCache/LocalMemCacheError.html +2 -2
- data/site/doc/classes/LocalMemCache/LockError.html +2 -2
- data/site/doc/classes/LocalMemCache/LockTimedOut.html +2 -2
- data/site/doc/classes/LocalMemCache/MemoryPoolClosed.html +2 -2
- data/site/doc/classes/LocalMemCache/MemoryPoolFull.html +2 -2
- data/site/doc/classes/LocalMemCache/OutOfMemoryError.html +2 -2
- data/site/doc/classes/LocalMemCache/RecoveryFailed.html +2 -2
- data/site/doc/classes/LocalMemCache/ShmError.html +2 -2
- data/site/doc/classes/LocalMemCache/ShmLockFailed.html +2 -2
- data/site/doc/classes/LocalMemCache/ShmUnlockFailed.html +2 -2
- data/site/doc/created.rid +1 -1
- data/site/doc/fr_class_index.html +2 -0
- data/site/doc/fr_file_index.html +3 -2
- data/site/doc/fr_method_index.html +17 -11
- data/site/doc/index.html +1 -1
- data/site/index.html +33 -17
- data/src/lmc_common.c +2 -1
- data/src/lmc_common.h +1 -1
- data/src/lmc_hashtable.c +62 -2
- data/src/lmc_hashtable.h +4 -1
- data/src/lmc_shm.c +1 -3
- data/src/lmc_shm.h +1 -3
- data/src/lmc_valloc.c +5 -0
- data/src/lmc_valloc.h +1 -0
- data/src/localmemcache.c +43 -8
- data/src/localmemcache.h +24 -6
- data/src/ruby-binding/localmemcache.rb +14 -29
- data/src/ruby-binding/rblocalmemcache.c +127 -16
- data/src/tests/allocfailure.rb +1 -1
- data/src/tests/bench.rb +1 -1
- data/src/tests/bench_keys.rb +1 -1
- data/src/tests/crash.rb +1 -1
- data/src/tests/lmc.rb +65 -9
- data/src/tests/lmctestapi.c +1 -1
- data/src/tests/parallelwrite.rb +1 -1
- data/src/tests/ttkeys +10 -0
- data/src/tests/ttkeys.rb +35 -0
- data/src/tests/ttlmc.rb +24 -6
- data/src/tests/ttrandom_pair +10 -0
- data/src/tests/ttrandom_pair.rb +23 -0
- metadata +8 -5
- data/site/doc/files/__/src/ruby-binding/extconf_rb.html +0 -108
- data/site/doc/files/__/src/ruby-binding/localmemcache_rb.html +0 -108
- data/site/doc/files/__/src/ruby-binding/rblocalmemcache_c.html +0 -101
data/README
CHANGED
@@ -17,7 +17,8 @@ alternative to GDBM and Berkeley DB.
|
|
17
17
|
SUPPORTED SYSTEMS
|
18
18
|
=================
|
19
19
|
|
20
|
-
- a >=64bit Unix
|
20
|
+
- a >=64bit Unix (32bit is possible but you'll run out of virtual address
|
21
|
+
space quickly)
|
21
22
|
- a file system that offers sparse files
|
22
23
|
|
23
24
|
Note for OS X: OS X disqualifies as HFS+ doesn't have sparse files and
|
@@ -35,7 +36,9 @@ require 'localmemcache'
|
|
35
36
|
# 1. the memcached way
|
36
37
|
# $lm = LocalMemCache.new :namespace => :viewcounters
|
37
38
|
# 2. the GDBM way
|
38
|
-
|
39
|
+
#$lm = LocalMemCache.new :filename => "./viewcounters.lmc"
|
40
|
+
# 3. Using LocalMemCache::SharedObjectStorage
|
41
|
+
$lm = LocalMemCache::SharedObjectStorage.new :filename => "./viewcounters.lmc"
|
39
42
|
$lm[:foo] = 1
|
40
43
|
$lm[:foo]
|
41
44
|
$lm.delete(:foo)
|
data/Rakefile
CHANGED
@@ -32,6 +32,10 @@ task :sanity_test do
|
|
32
32
|
"make -C src/tests/ && ./src/tests/lmc "
|
33
33
|
end
|
34
34
|
|
35
|
+
task :site_rdoc do
|
36
|
+
sh "cd ./src/ruby-binding; rdoc -o ../../site/doc"
|
37
|
+
end
|
38
|
+
|
35
39
|
task :performance_test do
|
36
40
|
sh "./configure && make -C src clean && make -C src && " +
|
37
41
|
"(cd src/ruby-binding; ruby extconf.rb) && " +
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.4.0
|
data/bench/lmc_bench.rb
CHANGED
@@ -4,7 +4,7 @@ $DIR=File.dirname(__FILE__)
|
|
4
4
|
require 'localmemcache'
|
5
5
|
require 'common.rb'
|
6
6
|
|
7
|
-
LocalMemCache.
|
7
|
+
LocalMemCache.drop :namespace=>"speed-comparison", :force => true
|
8
8
|
$lm2 = LocalMemCache.new :namespace=>"speed-comparison"
|
9
9
|
|
10
10
|
def compare_speed(n)
|
@@ -0,0 +1,20 @@
|
|
1
|
+
$DIR=File.dirname(__FILE__)
|
2
|
+
['.'].each {|p| $:.unshift File.join($DIR, p) }
|
3
|
+
|
4
|
+
require 'tokyocabinet'
|
5
|
+
require './common.rb'
|
6
|
+
|
7
|
+
def __test(n)
|
8
|
+
$cache = TokyoCabinet::BDB.new
|
9
|
+
$cache.open("/tmp/casket.bdb", TokyoCabinet::BDB::OWRITER |
|
10
|
+
TokyoCabinet::BDB::OCREAT)
|
11
|
+
|
12
|
+
$cache.clear
|
13
|
+
measure_time(n) {
|
14
|
+
r = rand(10000).to_s
|
15
|
+
$cache[r] = r
|
16
|
+
$cache[r]
|
17
|
+
}
|
18
|
+
end
|
19
|
+
|
20
|
+
__test(2_000_000)
|
@@ -55,12 +55,12 @@
|
|
55
55
|
<tr class="top-aligned-row">
|
56
56
|
<td><strong>In:</strong></td>
|
57
57
|
<td>
|
58
|
-
<a href="../files/
|
59
|
-
|
58
|
+
<a href="../files/localmemcache_rb.html">
|
59
|
+
localmemcache.rb
|
60
60
|
</a>
|
61
61
|
<br />
|
62
|
-
<a href="../files/
|
63
|
-
|
62
|
+
<a href="../files/rblocalmemcache_c.html">
|
63
|
+
rblocalmemcache.c
|
64
64
|
</a>
|
65
65
|
<br />
|
66
66
|
</td>
|
@@ -124,13 +124,18 @@ a persistent key value database, just use the :filename instead of the
|
|
124
124
|
|
125
125
|
== Clearing memory pools
|
126
126
|
|
127
|
-
Removing memory pools can be done with LocalMemCache.
|
127
|
+
Removing memory pools can be done with LocalMemCache.drop(options).
|
128
128
|
|
129
129
|
== Environment
|
130
130
|
|
131
131
|
If you use the :namespace parameter, the .lmc file for your namespace will
|
132
132
|
reside in /var/tmp/localmemcache. This can be overriden by setting the
|
133
133
|
LMC_NAMESPACES_ROOT_PATH variable in the environment.
|
134
|
+
|
135
|
+
== Storing Ruby Objects
|
136
|
+
|
137
|
+
If you want to store Ruby objects instead of just strings, consider
|
138
|
+
using LocalMemCache::SharedObjectStorage.
|
134
139
|
</pre>
|
135
140
|
|
136
141
|
</div>
|
@@ -142,18 +147,20 @@ a persistent key value database, just use the :filename instead of the
|
|
142
147
|
<h3 class="section-bar">Methods</h3>
|
143
148
|
|
144
149
|
<div class="name-list">
|
145
|
-
<a href="#
|
146
|
-
<a href="#
|
147
|
-
<a href="#
|
148
|
-
<a href="#
|
149
|
-
<a href="#
|
150
|
-
<a href="#
|
151
|
-
<a href="#
|
152
|
-
<a href="#
|
153
|
-
<a href="#
|
154
|
-
<a href="#
|
150
|
+
<a href="#M000005">[]</a>
|
151
|
+
<a href="#M000009">[]=</a>
|
152
|
+
<a href="#M000003">check</a>
|
153
|
+
<a href="#M000008">clear</a>
|
154
|
+
<a href="#M000013">close</a>
|
155
|
+
<a href="#M000006">delete</a>
|
156
|
+
<a href="#M000002">drop</a>
|
157
|
+
<a href="#M000011">each_pair</a>
|
158
|
+
<a href="#M000004">get</a>
|
159
|
+
<a href="#M000010">keys</a>
|
155
160
|
<a href="#M000001">new</a>
|
156
|
-
<a href="#
|
161
|
+
<a href="#M000012">random_pair</a>
|
162
|
+
<a href="#M000007">set</a>
|
163
|
+
<a href="#M000014">size</a>
|
157
164
|
</div>
|
158
165
|
</div>
|
159
166
|
|
@@ -168,6 +175,7 @@ a persistent key value database, just use the :filename instead of the
|
|
168
175
|
<h3 class="section-bar">Classes and Modules</h3>
|
169
176
|
|
170
177
|
Class <a href="LocalMemCache/ArgError.html" class="link">LocalMemCache::ArgError</a><br />
|
178
|
+
Class <a href="LocalMemCache/DBVersionNotSupported.html" class="link">LocalMemCache::DBVersionNotSupported</a><br />
|
171
179
|
Class <a href="LocalMemCache/InitError.html" class="link">LocalMemCache::InitError</a><br />
|
172
180
|
Class <a href="LocalMemCache/LocalMemCacheError.html" class="link">LocalMemCache::LocalMemCacheError</a><br />
|
173
181
|
Class <a href="LocalMemCache/LockError.html" class="link">LocalMemCache::LockError</a><br />
|
@@ -176,6 +184,7 @@ Class <a href="LocalMemCache/MemoryPoolClosed.html" class="link">LocalMemCache::
|
|
176
184
|
Class <a href="LocalMemCache/MemoryPoolFull.html" class="link">LocalMemCache::MemoryPoolFull</a><br />
|
177
185
|
Class <a href="LocalMemCache/OutOfMemoryError.html" class="link">LocalMemCache::OutOfMemoryError</a><br />
|
178
186
|
Class <a href="LocalMemCache/RecoveryFailed.html" class="link">LocalMemCache::RecoveryFailed</a><br />
|
187
|
+
Class <a href="LocalMemCache/SharedObjectStorage.html" class="link">LocalMemCache::SharedObjectStorage</a><br />
|
179
188
|
Class <a href="LocalMemCache/ShmError.html" class="link">LocalMemCache::ShmError</a><br />
|
180
189
|
Class <a href="LocalMemCache/ShmLockFailed.html" class="link">LocalMemCache::ShmLockFailed</a><br />
|
181
190
|
Class <a href="LocalMemCache/ShmUnlockFailed.html" class="link">LocalMemCache::ShmUnlockFailed</a><br />
|
@@ -192,48 +201,19 @@ Class <a href="LocalMemCache/ShmUnlockFailed.html" class="link">LocalMemCache::S
|
|
192
201
|
<div id="methods">
|
193
202
|
<h3 class="section-bar">Public Class methods</h3>
|
194
203
|
|
195
|
-
<div id="method-M000005" class="method-detail">
|
196
|
-
<a name="M000005"></a>
|
197
|
-
|
198
|
-
<div class="method-heading">
|
199
|
-
<a href="LocalMemCache.src/M000005.html" target="Code" class="method-signature"
|
200
|
-
onclick="popupCode('LocalMemCache.src/M000005.html');return false;">
|
201
|
-
<span class="method-name"> LocalMemCache.check(*args)<br />
|
202
|
-
</span>
|
203
|
-
</a>
|
204
|
-
</div>
|
205
|
-
|
206
|
-
<div class="method-description">
|
207
|
-
<p>
|
208
|
-
Tries to repair a corrupt namespace. Usually one doesn‘t call this
|
209
|
-
method directly, it‘s invoked automatically when operations time out.
|
210
|
-
</p>
|
211
|
-
<p>
|
212
|
-
valid options are [:namespace] [:filename]
|
213
|
-
</p>
|
214
|
-
<p>
|
215
|
-
The memory pool must be specified by either setting the :filename or
|
216
|
-
:namespace option.
|
217
|
-
</p>
|
218
|
-
</div>
|
219
|
-
</div>
|
220
|
-
|
221
204
|
<div id="method-M000003" class="method-detail">
|
222
205
|
<a name="M000003"></a>
|
223
206
|
|
224
207
|
<div class="method-heading">
|
225
208
|
<a href="LocalMemCache.src/M000003.html" target="Code" class="method-signature"
|
226
209
|
onclick="popupCode('LocalMemCache.src/M000003.html');return false;">
|
227
|
-
<span class="method-name">
|
210
|
+
<span class="method-name"> LocalMemCache.check(*args)<br />
|
211
|
+
</span>
|
228
212
|
</a>
|
229
213
|
</div>
|
230
214
|
|
231
215
|
<div class="method-description">
|
232
216
|
<p>
|
233
|
-
NOTE: This method is deprecated, use <a
|
234
|
-
href="LocalMemCache.html#M000005">LocalMemCache.check(*args)</a> instead.
|
235
|
-
</p>
|
236
|
-
<p>
|
237
217
|
Tries to repair a corrupt namespace. Usually one doesn‘t call this
|
238
218
|
method directly, it‘s invoked automatically when operations time out.
|
239
219
|
</p>
|
@@ -242,84 +222,48 @@ valid options are [:namespace] [:filename]
|
|
242
222
|
</p>
|
243
223
|
<p>
|
244
224
|
The memory pool must be specified by either setting the :filename or
|
245
|
-
:namespace option.
|
225
|
+
:namespace option.
|
246
226
|
</p>
|
247
227
|
</div>
|
248
228
|
</div>
|
249
229
|
|
250
|
-
<div id="method-
|
251
|
-
<a name="
|
230
|
+
<div id="method-M000002" class="method-detail">
|
231
|
+
<a name="M000002"></a>
|
252
232
|
|
253
233
|
<div class="method-heading">
|
254
|
-
<a href="LocalMemCache.src/
|
255
|
-
onclick="popupCode('LocalMemCache.src/
|
256
|
-
<span class="method-name"> LocalMemCache.
|
234
|
+
<a href="LocalMemCache.src/M000002.html" target="Code" class="method-signature"
|
235
|
+
onclick="popupCode('LocalMemCache.src/M000002.html');return false;">
|
236
|
+
<span class="method-name"> LocalMemCache.drop(*args)<br />
|
257
237
|
</span>
|
258
238
|
</a>
|
259
239
|
</div>
|
260
240
|
|
261
241
|
<div class="method-description">
|
262
242
|
<p>
|
263
|
-
Deletes a memory pool. If the :
|
264
|
-
href="LocalMemCache.html#
|
243
|
+
Deletes a memory pool. If the :force option is <a
|
244
|
+
href="LocalMemCache.html#M000007">set</a>, locked semaphores are removed as
|
265
245
|
well.
|
266
246
|
</p>
|
267
247
|
<p>
|
268
|
-
WARNING: Do only call this method with the :
|
248
|
+
WARNING: Do only call this method with the :force option if you are sure
|
269
249
|
that you really want to remove this memory pool and no more processes are
|
270
250
|
still using it.
|
271
251
|
</p>
|
272
252
|
<p>
|
273
|
-
If you <a href="LocalMemCache.html#
|
253
|
+
If you <a href="LocalMemCache.html#M000006">delete</a> a pool and other
|
274
254
|
processes still have handles open on it, the status of these handles
|
275
255
|
becomes undefined. There‘s no way for a process to know when a handle
|
276
256
|
is not valid anymore, so only <a
|
277
|
-
href="LocalMemCache.html#
|
257
|
+
href="LocalMemCache.html#M000006">delete</a> a memory pool if you are sure
|
278
258
|
that all handles are closed.
|
279
259
|
</p>
|
280
260
|
<p>
|
281
|
-
valid options for <a href="LocalMemCache.html#
|
282
|
-
[:namespace] [:filename] [:
|
261
|
+
valid options for <a href="LocalMemCache.html#M000002">drop</a> are
|
262
|
+
[:namespace] [:filename] [:force]
|
283
263
|
</p>
|
284
264
|
<p>
|
285
265
|
The memory pool must be specified by either setting the :filename or
|
286
|
-
:namespace option. The default for :
|
287
|
-
</p>
|
288
|
-
</div>
|
289
|
-
</div>
|
290
|
-
|
291
|
-
<div id="method-M000002" class="method-detail">
|
292
|
-
<a name="M000002"></a>
|
293
|
-
|
294
|
-
<div class="method-heading">
|
295
|
-
<a href="LocalMemCache.src/M000002.html" target="Code" class="method-signature"
|
296
|
-
onclick="popupCode('LocalMemCache.src/M000002.html');return false;">
|
297
|
-
<span class="method-name">clear_namespace</span><span class="method-args">(namespace, repair = false)</span>
|
298
|
-
</a>
|
299
|
-
</div>
|
300
|
-
|
301
|
-
<div class="method-description">
|
302
|
-
<p>
|
303
|
-
NOTE: This method is deprecated, use <a
|
304
|
-
href="LocalMemCache.html#M000004">LocalMemCache.clear(*args)</a> instead.
|
305
|
-
</p>
|
306
|
-
<p>
|
307
|
-
Deletes a memory pool. If the repair flag is <a
|
308
|
-
href="LocalMemCache.html#M000009">set</a>, locked semaphores are removed as
|
309
|
-
well.
|
310
|
-
</p>
|
311
|
-
<p>
|
312
|
-
If you <a href="LocalMemCache.html#M000008">delete</a> a pool and other
|
313
|
-
processes still have handles open on it, the status of these handles
|
314
|
-
becomes undefined. There‘s no way for a process to know when a handle
|
315
|
-
is not valid anymore, so only <a
|
316
|
-
href="LocalMemCache.html#M000008">delete</a> a memory pool if you are sure
|
317
|
-
that all handles are closed.
|
318
|
-
</p>
|
319
|
-
<p>
|
320
|
-
WARNING: Do only call this method with the repair=true flag if you are sure
|
321
|
-
that you really want to remove this memory pool and no more processes are
|
322
|
-
still using it.
|
266
|
+
:namespace option. The default for :force is false.
|
323
267
|
</p>
|
324
268
|
</div>
|
325
269
|
</div>
|
@@ -360,22 +304,23 @@ LMC_NAMESPACES_ROOT_PATH variable in the environment.
|
|
360
304
|
When you first call .<a href="LocalMemCache.html#M000001">new</a> for a
|
361
305
|
previously not existing memory pool, a sparse file will be created and
|
362
306
|
memory and disk space will be allocated to hold the empty hashtable (about
|
363
|
-
100K), so the size_mb refers only to the maximum
|
364
|
-
|
365
|
-
|
366
|
-
|
307
|
+
100K), so the size_mb refers only to the maximum <a
|
308
|
+
href="LocalMemCache.html#M000014">size</a> of the memory pool. .<a
|
309
|
+
href="LocalMemCache.html#M000001">new</a> for an already existing memory
|
310
|
+
pool will only map the already previously allocated RAM into the virtual
|
311
|
+
address space of your process.
|
367
312
|
</p>
|
368
313
|
</div>
|
369
314
|
</div>
|
370
315
|
|
371
316
|
<h3 class="section-bar">Public Instance methods</h3>
|
372
317
|
|
373
|
-
<div id="method-
|
374
|
-
<a name="
|
318
|
+
<div id="method-M000005" class="method-detail">
|
319
|
+
<a name="M000005"></a>
|
375
320
|
|
376
321
|
<div class="method-heading">
|
377
|
-
<a href="LocalMemCache.src/
|
378
|
-
onclick="popupCode('LocalMemCache.src/
|
322
|
+
<a href="LocalMemCache.src/M000005.html" target="Code" class="method-signature"
|
323
|
+
onclick="popupCode('LocalMemCache.src/M000005.html');return false;">
|
379
324
|
<span class="method-name">lmc.get(key) → string value or nil<br />
|
380
325
|
lmc[key] → string value or nil<br />
|
381
326
|
</span>
|
@@ -389,12 +334,12 @@ Retrieve string value from hashtable.
|
|
389
334
|
</div>
|
390
335
|
</div>
|
391
336
|
|
392
|
-
<div id="method-
|
393
|
-
<a name="
|
337
|
+
<div id="method-M000009" class="method-detail">
|
338
|
+
<a name="M000009"></a>
|
394
339
|
|
395
340
|
<div class="method-heading">
|
396
|
-
<a href="LocalMemCache.src/
|
397
|
-
onclick="popupCode('LocalMemCache.src/
|
341
|
+
<a href="LocalMemCache.src/M000009.html" target="Code" class="method-signature"
|
342
|
+
onclick="popupCode('LocalMemCache.src/M000009.html');return false;">
|
398
343
|
<span class="method-name">lmc.set(key, value) → Qnil<br />
|
399
344
|
lmc[key]=value → Qnil<br />
|
400
345
|
</span>
|
@@ -408,38 +353,38 @@ Set value for key in hashtable. Value and key will be converted to string.
|
|
408
353
|
</div>
|
409
354
|
</div>
|
410
355
|
|
411
|
-
<div id="method-
|
412
|
-
<a name="
|
356
|
+
<div id="method-M000008" class="method-detail">
|
357
|
+
<a name="M000008"></a>
|
413
358
|
|
414
359
|
<div class="method-heading">
|
415
|
-
<a href="LocalMemCache.src/
|
416
|
-
onclick="popupCode('LocalMemCache.src/
|
417
|
-
<span class="method-name">lmc.
|
360
|
+
<a href="LocalMemCache.src/M000008.html" target="Code" class="method-signature"
|
361
|
+
onclick="popupCode('LocalMemCache.src/M000008.html');return false;">
|
362
|
+
<span class="method-name">lmc.clear → Qnil<br />
|
418
363
|
</span>
|
419
364
|
</a>
|
420
365
|
</div>
|
421
366
|
|
422
367
|
<div class="method-description">
|
423
368
|
<p>
|
424
|
-
|
369
|
+
Clears content of hashtable.
|
425
370
|
</p>
|
426
371
|
</div>
|
427
372
|
</div>
|
428
373
|
|
429
|
-
<div id="method-
|
430
|
-
<a name="
|
374
|
+
<div id="method-M000013" class="method-detail">
|
375
|
+
<a name="M000013"></a>
|
431
376
|
|
432
377
|
<div class="method-heading">
|
433
|
-
<a href="LocalMemCache.src/
|
434
|
-
onclick="popupCode('LocalMemCache.src/
|
435
|
-
<span class="method-name">lmc.
|
378
|
+
<a href="LocalMemCache.src/M000013.html" target="Code" class="method-signature"
|
379
|
+
onclick="popupCode('LocalMemCache.src/M000013.html');return false;">
|
380
|
+
<span class="method-name">lmc.close() → Qnil<br />
|
436
381
|
</span>
|
437
382
|
</a>
|
438
383
|
</div>
|
439
384
|
|
440
385
|
<div class="method-description">
|
441
386
|
<p>
|
442
|
-
|
387
|
+
Releases hashtable.
|
443
388
|
</p>
|
444
389
|
</div>
|
445
390
|
</div>
|
@@ -450,15 +395,14 @@ Deletes key from hashtable. The key is converted to string.
|
|
450
395
|
<div class="method-heading">
|
451
396
|
<a href="LocalMemCache.src/M000006.html" target="Code" class="method-signature"
|
452
397
|
onclick="popupCode('LocalMemCache.src/M000006.html');return false;">
|
453
|
-
<span class="method-name">lmc.
|
454
|
-
lmc[key] → string value or nil<br />
|
398
|
+
<span class="method-name">lmc.delete(key) → Qnil<br />
|
455
399
|
</span>
|
456
400
|
</a>
|
457
401
|
</div>
|
458
402
|
|
459
403
|
<div class="method-description">
|
460
404
|
<p>
|
461
|
-
|
405
|
+
Deletes key from hashtable. The key is converted to string.
|
462
406
|
</p>
|
463
407
|
</div>
|
464
408
|
</div>
|
@@ -469,6 +413,43 @@ Retrieve string value from hashtable.
|
|
469
413
|
<div class="method-heading">
|
470
414
|
<a href="LocalMemCache.src/M000011.html" target="Code" class="method-signature"
|
471
415
|
onclick="popupCode('LocalMemCache.src/M000011.html');return false;">
|
416
|
+
<span class="method-name">lmc.each_pair {|k, v| block } → nil<br />
|
417
|
+
</span>
|
418
|
+
</a>
|
419
|
+
</div>
|
420
|
+
|
421
|
+
<div class="method-description">
|
422
|
+
<p>
|
423
|
+
Iterates over hashtable.
|
424
|
+
</p>
|
425
|
+
</div>
|
426
|
+
</div>
|
427
|
+
|
428
|
+
<div id="method-M000004" class="method-detail">
|
429
|
+
<a name="M000004"></a>
|
430
|
+
|
431
|
+
<div class="method-heading">
|
432
|
+
<a href="LocalMemCache.src/M000004.html" target="Code" class="method-signature"
|
433
|
+
onclick="popupCode('LocalMemCache.src/M000004.html');return false;">
|
434
|
+
<span class="method-name">lmc.get(key) → string value or nil<br />
|
435
|
+
lmc[key] → string value or nil<br />
|
436
|
+
</span>
|
437
|
+
</a>
|
438
|
+
</div>
|
439
|
+
|
440
|
+
<div class="method-description">
|
441
|
+
<p>
|
442
|
+
Retrieve string value from hashtable.
|
443
|
+
</p>
|
444
|
+
</div>
|
445
|
+
</div>
|
446
|
+
|
447
|
+
<div id="method-M000010" class="method-detail">
|
448
|
+
<a name="M000010"></a>
|
449
|
+
|
450
|
+
<div class="method-heading">
|
451
|
+
<a href="LocalMemCache.src/M000010.html" target="Code" class="method-signature"
|
452
|
+
onclick="popupCode('LocalMemCache.src/M000010.html');return false;">
|
472
453
|
<span class="method-name">lmc.keys() → array or nil<br />
|
473
454
|
</span>
|
474
455
|
</a>
|
@@ -476,17 +457,35 @@ Retrieve string value from hashtable.
|
|
476
457
|
|
477
458
|
<div class="method-description">
|
478
459
|
<p>
|
479
|
-
Returns a list of <a href="LocalMemCache.html#
|
460
|
+
Returns a list of <a href="LocalMemCache.html#M000010">keys</a>.
|
480
461
|
</p>
|
481
462
|
</div>
|
482
463
|
</div>
|
483
464
|
|
484
|
-
<div id="method-
|
485
|
-
<a name="
|
465
|
+
<div id="method-M000012" class="method-detail">
|
466
|
+
<a name="M000012"></a>
|
486
467
|
|
487
468
|
<div class="method-heading">
|
488
|
-
<a href="LocalMemCache.src/
|
489
|
-
onclick="popupCode('LocalMemCache.src/
|
469
|
+
<a href="LocalMemCache.src/M000012.html" target="Code" class="method-signature"
|
470
|
+
onclick="popupCode('LocalMemCache.src/M000012.html');return false;">
|
471
|
+
<span class="method-name">lmc.random_pair() → [key, value] or nil<br />
|
472
|
+
</span>
|
473
|
+
</a>
|
474
|
+
</div>
|
475
|
+
|
476
|
+
<div class="method-description">
|
477
|
+
<p>
|
478
|
+
Retrieves random pair from hashtable.
|
479
|
+
</p>
|
480
|
+
</div>
|
481
|
+
</div>
|
482
|
+
|
483
|
+
<div id="method-M000007" class="method-detail">
|
484
|
+
<a name="M000007"></a>
|
485
|
+
|
486
|
+
<div class="method-heading">
|
487
|
+
<a href="LocalMemCache.src/M000007.html" target="Code" class="method-signature"
|
488
|
+
onclick="popupCode('LocalMemCache.src/M000007.html');return false;">
|
490
489
|
<span class="method-name">lmc.set(key, value) → Qnil<br />
|
491
490
|
lmc[key]=value → Qnil<br />
|
492
491
|
</span>
|
@@ -500,6 +499,24 @@ Set value for key in hashtable. Value and key will be converted to string.
|
|
500
499
|
</div>
|
501
500
|
</div>
|
502
501
|
|
502
|
+
<div id="method-M000014" class="method-detail">
|
503
|
+
<a name="M000014"></a>
|
504
|
+
|
505
|
+
<div class="method-heading">
|
506
|
+
<a href="LocalMemCache.src/M000014.html" target="Code" class="method-signature"
|
507
|
+
onclick="popupCode('LocalMemCache.src/M000014.html');return false;">
|
508
|
+
<span class="method-name">lmc.size → number<br />
|
509
|
+
</span>
|
510
|
+
</a>
|
511
|
+
</div>
|
512
|
+
|
513
|
+
<div class="method-description">
|
514
|
+
<p>
|
515
|
+
Number of pairs in the hashtable.
|
516
|
+
</p>
|
517
|
+
</div>
|
518
|
+
</div>
|
519
|
+
|
503
520
|
|
504
521
|
</div>
|
505
522
|
|