localmemcache 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
|