keys
Version:
Unified api for node key/value stores
533 lines (476 loc) • 28.2 kB
HTML
<a href="http://github.com/visionmedia/keys"><img alt="Fork me on GitHub" id="ribbon" src="http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png"></a><html>
<head>
<title>Keys</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<style>body {
margin: 0;
padding: 0;
font: 14px/1.5 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif;
color: #252519;
}
a {
color: #252519;
}
a:hover {
text-decoration: underline;
color: #19469D;
}
p {
margin: 12px 0;
}
h1, h2, h3 {
margin: 0;
padding: 0;
}
table#source {
width: 100%;
border-collapse: collapse;
}
table#source td:first-child {
padding: 30px 40px 30px 40px;
vertical-align: top;
}
table#source td:first-child,
table#source td:first-child pre {
width: 450px;
}
table#source td:last-child {
padding: 30px 0 30px 40px;
border-left: 1px solid #E5E5EE;
background: #F5F5FF;
}
table#source tr {
border-bottom: 1px solid #E5E5EE;
}
table#source tr.filename {
padding-top: 40px;
border-top: 1px solid #E5E5EE;
}
table#source tr.filename td:first-child {
text-transform: capitalize;
}
table#source tr.filename td:last-child {
font-size: 12px;
}
table#source tr.filename h2 {
margin: 0;
padding: 0;
cursor: pointer;
}
table#source tr.code h1,
table#source tr.code h2,
table#source tr.code h3 {
margin-top: 30px;
font-family: "Lucida Grande", "Helvetica Nueue", Arial, sans-serif;
font-size: 18px;
}
table#source tr.code h2 {
font-size: 16px;
}
table#source tr.code h3 {
font-size: 14px;
}
table#source tr.code ul {
margin: 15px 0 15px 35px;
padding: 0;
}
table#source tr.code ul li {
margin: 0;
padding: 1px 0;
}
table#source tr.code ul li p {
margin: 0;
padding: 0;
}
table#source tr.code td:first-child pre {
padding: 20px;
}
#ribbon {
position: fixed;
top: 0;
right: 0;
}
code .string { color: #219161; }
code .regexp { color: #219161; }
code .keyword { color: #954121; }
code .number { color: #19469D; }
code .comment { color: #bbb; }
code .this { color: #19469D; }</style>
<script>
$(function(){
$('tr.code').hide();
$('tr.filename').toggle(function(){
$(this).nextUntil('.filename').fadeIn();
}, function(){
$(this).nextUntil('.filename').fadeOut();
});
});
</script>
</head>
<body>
<table id="source"><tbody><tr><td><h1>Keys</h1><p>Unified interface for <a href="http://nodejs.org">node</a> key/value stores.</p></td><td></td></tr><tr class="filename"><td><h2 id="lib/keys.js"><a href="#">keys</a></h2></td><td>lib/keys.js</td></tr><tr class="code">
<td class="docs">
<p>Generate auto-loading getters.</p>
<h2>Example</h2>
<pre><code>keys.Redis</code></pre>
<p> </p>
</td>
<td class="code">
<pre><code>(<span class="keyword">function</span>(<span class="variable">name</span>){
<span class="variable">exports</span>.<span class="variable">__defineGetter__</span>(<span class="variable">name</span>, <span class="keyword">function</span>(){
<span class="keyword">return</span> <span class="variable">require</span>(<span class="string">'./stores/'</span> + <span class="variable">name</span>.<span class="variable">toLowerCase</span>());
});
<span class="keyword">return</span> <span class="variable">arguments</span>.<span class="variable">callee</span>;
})(<span class="string">'Memory'</span>)(<span class="string">'Redis'</span>)(<span class="string">'nStore'</span>)(<span class="string">'Riak'</span>);</code></pre>
</td>
</tr><tr class="filename"><td><h2 id="lib/stores/memory.js"><a href="#">memory</a></h2></td><td>lib/stores/memory.js</td></tr><tr class="code">
<td class="docs">
<p>Initialize memory store.</p>
<h2>Options</h2>
<ul><li><code>data</code> Object containing pre-defined store data</li></ul>
<h2></h2>
<ul><li><p><strong>param</strong>: <em>Object</em> options</p></li><li><p><strong>api</strong>: <em>public</em></p></li></ul>
</td>
<td class="code">
<pre><code><span class="keyword">var</span> <span class="class">Memory</span> = <span class="variable">module</span>.<span class="variable">exports</span> = <span class="keyword">function</span> <span class="class">Memory</span>(<span class="variable">options</span>) {
<span class="keyword">var</span> <span class="variable">self</span> = <span class="this">this</span>;
<span class="variable">options</span> = <span class="variable">options</span> || {};
<span class="this">this</span>.<span class="variable">data</span> = <span class="variable">options</span>.<span class="variable">data</span> || {};
};</code></pre>
</td>
</tr>
<tr class="code">
<td class="docs">
<p>Set <code>key</code> to <code>val</code>, then callback <code>fn(err)</code>.</p>
<h2></h2>
<ul><li><p><strong>param</strong>: <em>String</em> key</p></li><li><p><strong>param</strong>: <em>String</em> val</p></li><li><p><strong>param</strong>: <em>Function</em> fn</p></li><li><p><strong>api</strong>: <em>public</em></p></li></ul>
</td>
<td class="code">
<pre><code><span class="class">Memory</span>.<span class="variable">prototype</span>.<span class="variable">set</span> = <span class="keyword">function</span>(<span class="variable">key</span>, <span class="variable">val</span>, <span class="variable">fn</span>){
<span class="this">this</span>.<span class="variable">data</span>[<span class="variable">key</span>] = <span class="variable">val</span>;
<span class="variable">fn</span> &<span class="variable">amp</span>;&<span class="variable">amp</span>; <span class="variable">fn</span>();
};</code></pre>
</td>
</tr>
<tr class="code">
<td class="docs">
<p>Get <code>key</code>, then callback <code>fn(err, val)</code>.</p>
<h2></h2>
<ul><li><p><strong>param</strong>: <em>String</em> key</p></li><li><p><strong>param</strong>: <em>Function</em> fn</p></li><li><p><strong>api</strong>: <em>public</em></p></li></ul>
</td>
<td class="code">
<pre><code><span class="class">Memory</span>.<span class="variable">prototype</span>.<span class="variable">get</span> = <span class="keyword">function</span>(<span class="variable">key</span>, <span class="variable">fn</span>){
<span class="variable">fn</span>(<span class="keyword">null</span>, <span class="this">this</span>.<span class="variable">data</span>[<span class="variable">key</span>]);
};</code></pre>
</td>
</tr>
<tr class="code">
<td class="docs">
<p>Remove <code>key</code>, then callback <code>fn(err)</code>.</p>
<h2></h2>
<ul><li><p><strong>param</strong>: <em>String</em> key</p></li><li><p><strong>param</strong>: <em>Function</em> fn</p></li><li><p><strong>api</strong>: <em>public</em></p></li></ul>
</td>
<td class="code">
<pre><code><span class="class">Memory</span>.<span class="variable">prototype</span>.<span class="variable">remove</span> = <span class="keyword">function</span>(<span class="variable">key</span>, <span class="variable">fn</span>){
<span class="keyword">delete</span> <span class="this">this</span>.<span class="variable">data</span>[<span class="variable">key</span>];
<span class="variable">fn</span> &<span class="variable">amp</span>;&<span class="variable">amp</span>; <span class="variable">fn</span>();
};</code></pre>
</td>
</tr>
<tr class="code">
<td class="docs">
<p>Check if <code>key</code> exists, callback <code>fn(err, exists)</code>.</p>
<h2></h2>
<ul><li><p><strong>param</strong>: <em>String</em> key</p></li><li><p><strong>param</strong>: <em>Function</em> fn</p></li><li><p><strong>api</strong>: <em>public</em></p></li></ul>
</td>
<td class="code">
<pre><code><span class="class">Memory</span>.<span class="variable">prototype</span>.<span class="variable">has</span> = <span class="keyword">function</span>(<span class="variable">key</span>, <span class="variable">fn</span>){
<span class="variable">fn</span>(<span class="keyword">null</span>, <span class="variable">key</span> <span class="keyword">in</span> <span class="this">this</span>.<span class="variable">data</span>);
};</code></pre>
</td>
</tr>
<tr class="code">
<td class="docs">
<p>Fetch number of keys, callback <code>fn(err, len)</code>.</p>
<h2></h2>
<ul><li><p><strong>param</strong>: <em>Function</em> fn</p></li><li><p><strong>api</strong>: <em>public</em></p></li></ul>
</td>
<td class="code">
<pre><code><span class="class">Memory</span>.<span class="variable">prototype</span>.<span class="variable">length</span> = <span class="keyword">function</span>(<span class="variable">fn</span>){
<span class="variable">fn</span>(<span class="keyword">null</span>, <span class="class">Object</span>.<span class="variable">keys</span>(<span class="this">this</span>.<span class="variable">data</span>).<span class="variable">length</span>);
};</code></pre>
</td>
</tr>
<tr class="code">
<td class="docs">
<p>Clear all keys, then callback <code>fn(err)</code>.</p>
<h2></h2>
<ul><li><p><strong>param</strong>: <em>Function</em> fn</p></li><li><p><strong>api</strong>: <em>public</em></p></li></ul>
</td>
<td class="code">
<pre><code><span class="class">Memory</span>.<span class="variable">prototype</span>.<span class="variable">clear</span> = <span class="keyword">function</span>(<span class="variable">fn</span>){
<span class="this">this</span>.<span class="variable">data</span> = {};
<span class="variable">fn</span> &<span class="variable">amp</span>;&<span class="variable">amp</span>; <span class="variable">fn</span>();
};</code></pre>
</td>
</tr>
<tr class="code">
<td class="docs">
<p>Iterate with <code>fn(err, val, key)</code>, then <code>done()</code> when finished.</p>
<h2></h2>
<ul><li><p><strong>param</strong>: <em>Function</em> fn</p></li><li><p><strong>param</strong>: <em>Function</em> done</p></li><li><p><strong>api</strong>: <em>public</em></p></li></ul>
</td>
<td class="code">
<pre><code><span class="class">Memory</span>.<span class="variable">prototype</span>.<span class="variable">each</span> = <span class="keyword">function</span>(<span class="variable">fn</span>, <span class="variable">done</span>){
<span class="keyword">var</span> <span class="variable">keys</span> = <span class="class">Object</span>.<span class="variable">keys</span>(<span class="this">this</span>.<span class="variable">data</span>);
<span class="keyword">for</span> (<span class="keyword">var</span> <span class="variable">i</span> = <span class="number integer">0</span>, <span class="variable">len</span> = <span class="variable">keys</span>.<span class="variable">length</span>; <span class="variable">i</span> &<span class="variable">lt</span>; <span class="variable">len</span>; ++<span class="variable">i</span>) {
<span class="variable">fn</span>(<span class="this">this</span>.<span class="variable">data</span>[<span class="variable">keys</span>[<span class="variable">i</span>]], <span class="variable">keys</span>[<span class="variable">i</span>]);
}
<span class="variable">done</span> &<span class="variable">amp</span>;&<span class="variable">amp</span>; <span class="variable">done</span>();
};
</code></pre>
</td>
</tr><tr class="filename"><td><h2 id="lib/stores/nstore.js"><a href="#">nstore</a></h2></td><td>lib/stores/nstore.js</td></tr><tr class="code">
<td class="docs">
<p>Module dependencies.
</p>
</td>
<td class="code">
<pre><code><span class="keyword">var</span> <span class="class">Store</span> = <span class="variable">require</span>(<span class="string">'nstore'</span>);</code></pre>
</td>
</tr>
<tr class="code">
<td class="docs">
<p>Initialize nStore ... store.</p>
<h2>Options</h2>
<ul><li><code>path</code> Path to database, defaults to CWD/store.db</li></ul>
<h2></h2>
<ul><li><p><strong>param</strong>: <em>Object</em> options</p></li><li><p><strong>api</strong>: <em>public</em></p></li></ul>
</td>
<td class="code">
<pre><code><span class="keyword">var</span> <span class="variable">nStore</span> = <span class="variable">module</span>.<span class="variable">exports</span> = <span class="keyword">function</span> <span class="variable">nStore</span>(<span class="variable">options</span>) {
<span class="variable">options</span> = <span class="variable">options</span> || {};
<span class="keyword">var</span> <span class="variable">path</span> = <span class="variable">options</span>.<span class="variable">path</span> || <span class="variable">process</span>.<span class="variable">cwd</span>() + <span class="string">'/store.db'</span>;
<span class="this">this</span>.<span class="variable">client</span> = <span class="class">Store</span>(<span class="variable">path</span>);
};</code></pre>
</td>
</tr>
<tr class="code">
<td class="docs">
<p>Set <code>key</code> to <code>val</code>, then callback <code>fn(err)</code>.</p>
<h2></h2>
<ul><li><p><strong>param</strong>: <em>String</em> key</p></li><li><p><strong>param</strong>: <em>String</em> val</p></li><li><p><strong>param</strong>: <em>Function</em> fn</p></li><li><p><strong>api</strong>: <em>public</em></p></li></ul>
</td>
<td class="code">
<pre><code><span class="variable">nStore</span>.<span class="variable">prototype</span>.<span class="variable">get</span> = <span class="keyword">function</span>(<span class="variable">key</span>, <span class="variable">fn</span>){
<span class="this">this</span>.<span class="variable">client</span>.<span class="variable">get</span>(<span class="variable">key</span>, <span class="variable">fn</span>);
};</code></pre>
</td>
</tr>
<tr class="code">
<td class="docs">
<p>Get <code>key</code>, then callback <code>fn(err, val)</code>.</p>
<h2></h2>
<ul><li><p><strong>param</strong>: <em>String</em> key</p></li><li><p><strong>param</strong>: <em>Function</em> fn</p></li><li><p><strong>api</strong>: <em>public</em></p></li></ul>
</td>
<td class="code">
<pre><code><span class="variable">nStore</span>.<span class="variable">prototype</span>.<span class="variable">set</span> = <span class="keyword">function</span>(<span class="variable">key</span>, <span class="variable">val</span>, <span class="variable">fn</span>){
<span class="this">this</span>.<span class="variable">client</span>.<span class="variable">save</span>(<span class="variable">key</span>, <span class="variable">val</span>, <span class="variable">fn</span>);
};</code></pre>
</td>
</tr>
<tr class="code">
<td class="docs">
<p>Remove <code>key</code>, then callback <code>fn(err)</code>.</p>
<h2></h2>
<ul><li><p><strong>param</strong>: <em>String</em> key</p></li><li><p><strong>param</strong>: <em>Function</em> fn</p></li><li><p><strong>api</strong>: <em>public</em></p></li></ul>
</td>
<td class="code">
<pre><code><span class="variable">nStore</span>.<span class="variable">prototype</span>.<span class="variable">remove</span> = <span class="keyword">function</span>(<span class="variable">key</span>, <span class="variable">fn</span>){
<span class="this">this</span>.<span class="variable">client</span>.<span class="variable">remove</span>(<span class="variable">key</span>, <span class="variable">fn</span>);
};</code></pre>
</td>
</tr>
<tr class="code">
<td class="docs">
<p>Check if <code>key</code> exists, callback <code>fn(err, exists)</code>.</p>
<h2></h2>
<ul><li><p><strong>param</strong>: <em>String</em> key</p></li><li><p><strong>param</strong>: <em>Function</em> fn</p></li><li><p><strong>api</strong>: <em>public</em></p></li></ul>
</td>
<td class="code">
<pre><code><span class="variable">nStore</span>.<span class="variable">prototype</span>.<span class="variable">has</span> = <span class="keyword">function</span>(<span class="variable">key</span>, <span class="variable">fn</span>){
<span class="this">this</span>.<span class="variable">client</span>.<span class="variable">get</span>(<span class="variable">key</span>, <span class="keyword">function</span>(<span class="variable">err</span>, <span class="variable">val</span>){
<span class="variable">fn</span>(<span class="variable">err</span>, !!<span class="variable">val</span>);
});
};</code></pre>
</td>
</tr>
<tr class="code">
<td class="docs">
<p>Fetch number of keys, callback <code>fn(err, len)</code>.</p>
<h2></h2>
<ul><li><p><strong>param</strong>: <em>Function</em> fn</p></li><li><p><strong>api</strong>: <em>public</em></p></li></ul>
</td>
<td class="code">
<pre><code><span class="variable">nStore</span>.<span class="variable">prototype</span>.<span class="variable">length</span> = <span class="keyword">function</span>(<span class="variable">fn</span>){
<span class="variable">fn</span>(<span class="keyword">null</span>, <span class="this">this</span>.<span class="variable">client</span>.<span class="variable">length</span>);
};</code></pre>
</td>
</tr>
<tr class="code">
<td class="docs">
<p>Clear all keys, then callback <code>fn(err)</code>.</p>
<h2></h2>
<ul><li><p><strong>param</strong>: <em>Function</em> fn</p></li><li><p><strong>api</strong>: <em>public</em></p></li></ul>
</td>
<td class="code">
<pre><code><span class="variable">nStore</span>.<span class="variable">prototype</span>.<span class="variable">clear</span> = <span class="keyword">function</span>(<span class="variable">fn</span>){
<span class="this">this</span>.<span class="variable">client</span>.<span class="variable">clear</span>();
<span class="variable">fn</span> &<span class="variable">amp</span>;&<span class="variable">amp</span>; <span class="variable">fn</span>();
};</code></pre>
</td>
</tr>
<tr class="code">
<td class="docs">
<p>Iterate with <code>fn(err, val, key)</code>, then <code>done()</code> when finished.</p>
<h2></h2>
<ul><li><p><strong>param</strong>: <em>Function</em> fn</p></li><li><p><strong>param</strong>: <em>Function</em> done</p></li><li><p><strong>api</strong>: <em>public</em></p></li></ul>
</td>
<td class="code">
<pre><code><span class="variable">nStore</span>.<span class="variable">prototype</span>.<span class="variable">each</span> = <span class="keyword">function</span>(<span class="variable">fn</span>, <span class="variable">done</span>){
<span class="keyword">var</span> <span class="variable">stream</span> = <span class="this">this</span>.<span class="variable">client</span>.<span class="variable">stream</span>();
<span class="variable">stream</span>.<span class="variable">addListener</span>(<span class="string">'data'</span>, <span class="keyword">function</span>(<span class="variable">doc</span>, <span class="variable">meta</span>){
<span class="variable">fn</span>(<span class="variable">doc</span>, <span class="variable">meta</span>.<span class="variable">key</span>);
});
<span class="variable">stream</span>.<span class="variable">addListener</span>(<span class="string">'end'</span>, <span class="keyword">function</span>(){
<span class="variable">done</span> &<span class="variable">amp</span>;&<span class="variable">amp</span>; <span class="variable">done</span>();
});
};</code></pre>
</td>
</tr><tr class="filename"><td><h2 id="lib/stores/redis.js"><a href="#">redis</a></h2></td><td>lib/stores/redis.js</td></tr><tr class="code">
<td class="docs">
<p>Module dependencies.
</p>
</td>
<td class="code">
<pre><code><span class="keyword">var</span> <span class="variable">redis</span> = <span class="variable">require</span>(<span class="string">'redis-client'</span>),
<span class="variable">noop</span> = <span class="keyword">function</span>(){};</code></pre>
</td>
</tr>
<tr class="code">
<td class="docs">
<p>Initialize redis store.</p>
<h2>Options</h2>
<ul><li><code>port</code> Optional redis-server port</li><li><code>host</code> Optional redis-server host</li><li>... Other options passed to <code>redis.createClient()</code></li></ul>
<h2></h2>
<ul><li><p><strong>param</strong>: <em>Object</em> options</p></li><li><p><strong>api</strong>: <em>public</em></p></li></ul>
</td>
<td class="code">
<pre><code><span class="keyword">var</span> <span class="class">Redis</span> = <span class="variable">module</span>.<span class="variable">exports</span> = <span class="keyword">function</span> <span class="class">Redis</span>(<span class="variable">options</span>) {
<span class="variable">options</span> = <span class="variable">options</span> || {};
<span class="this">this</span>.<span class="variable">client</span> = <span class="keyword">new</span> <span class="variable">redis</span>.<span class="variable">createClient</span>(<span class="variable">options</span>.<span class="variable">port</span>, <span class="variable">options</span>.<span class="variable">host</span>, <span class="variable">options</span>);
};</code></pre>
</td>
</tr>
<tr class="code">
<td class="docs">
<p>Set <code>key</code> to <code>val</code>, then callback <code>fn(err)</code>.</p>
<h2></h2>
<ul><li><p><strong>param</strong>: <em>String</em> key</p></li><li><p><strong>param</strong>: <em>String</em> val</p></li><li><p><strong>param</strong>: <em>Function</em> fn</p></li><li><p><strong>api</strong>: <em>public</em></p></li></ul>
</td>
<td class="code">
<pre><code><span class="class">Redis</span>.<span class="variable">prototype</span>.<span class="variable">set</span> = <span class="keyword">function</span>(<span class="variable">key</span>, <span class="variable">val</span>, <span class="variable">fn</span>){
<span class="this">this</span>.<span class="variable">client</span>.<span class="variable">set</span>(<span class="variable">key</span>, <span class="variable">val</span>, <span class="variable">fn</span> || <span class="variable">noop</span>);
};</code></pre>
</td>
</tr>
<tr class="code">
<td class="docs">
<p>Get <code>key</code>, then callback <code>fn(err, val)</code>.</p>
<h2></h2>
<ul><li><p><strong>param</strong>: <em>String</em> key</p></li><li><p><strong>param</strong>: <em>Function</em> fn</p></li><li><p><strong>api</strong>: <em>public</em></p></li></ul>
</td>
<td class="code">
<pre><code><span class="class">Redis</span>.<span class="variable">prototype</span>.<span class="variable">get</span> = <span class="keyword">function</span>(<span class="variable">key</span>, <span class="variable">fn</span>){
<span class="this">this</span>.<span class="variable">client</span>.<span class="variable">get</span>(<span class="variable">key</span>, <span class="keyword">function</span>(<span class="variable">err</span>, <span class="variable">buf</span>){
<span class="variable">fn</span>(<span class="variable">err</span>, <span class="variable">buf</span> ? <span class="variable">buf</span>.<span class="variable">toString</span>() : <span class="variable">buf</span>);
});
};</code></pre>
</td>
</tr>
<tr class="code">
<td class="docs">
<p>Remove <code>key</code>, then callback <code>fn(err)</code>.</p>
<h2></h2>
<ul><li><p><strong>param</strong>: <em>String</em> key</p></li><li><p><strong>param</strong>: <em>Function</em> fn</p></li><li><p><strong>api</strong>: <em>public</em></p></li></ul>
</td>
<td class="code">
<pre><code><span class="class">Redis</span>.<span class="variable">prototype</span>.<span class="variable">remove</span> = <span class="keyword">function</span>(<span class="variable">key</span>, <span class="variable">fn</span>){
<span class="this">this</span>.<span class="variable">client</span>.<span class="variable">del</span>(<span class="variable">key</span>, <span class="variable">fn</span>);
};</code></pre>
</td>
</tr>
<tr class="code">
<td class="docs">
<p>Check if <code>key</code> exists, callback <code>fn(err, exists)</code>.</p>
<h2></h2>
<ul><li><p><strong>param</strong>: <em>String</em> key</p></li><li><p><strong>param</strong>: <em>Function</em> fn</p></li><li><p><strong>api</strong>: <em>public</em></p></li></ul>
</td>
<td class="code">
<pre><code><span class="class">Redis</span>.<span class="variable">prototype</span>.<span class="variable">has</span> = <span class="keyword">function</span>(<span class="variable">key</span>, <span class="variable">fn</span>){
<span class="this">this</span>.<span class="variable">client</span>.<span class="variable">exists</span>(<span class="variable">key</span>, <span class="keyword">function</span>(<span class="variable">err</span>, <span class="variable">exists</span>){
<span class="variable">fn</span>(<span class="variable">err</span>, !!<span class="variable">exists</span>);
});
};</code></pre>
</td>
</tr>
<tr class="code">
<td class="docs">
<p>Fetch number of keys, callback <code>fn(err, len)</code>.</p>
<h2></h2>
<ul><li><p><strong>param</strong>: <em>Function</em> fn</p></li><li><p><strong>api</strong>: <em>public</em></p></li></ul>
</td>
<td class="code">
<pre><code><span class="class">Redis</span>.<span class="variable">prototype</span>.<span class="variable">length</span> = <span class="keyword">function</span>(<span class="variable">fn</span>){
<span class="this">this</span>.<span class="variable">client</span>.<span class="variable">dbsize</span>(<span class="variable">fn</span>);
};</code></pre>
</td>
</tr>
<tr class="code">
<td class="docs">
<p>Clear all keys, then callback <code>fn(err)</code>.</p>
<h2></h2>
<ul><li><p><strong>param</strong>: <em>Function</em> fn</p></li><li><p><strong>api</strong>: <em>public</em></p></li></ul>
</td>
<td class="code">
<pre><code><span class="class">Redis</span>.<span class="variable">prototype</span>.<span class="variable">clear</span> = <span class="keyword">function</span>(<span class="variable">fn</span>){
<span class="this">this</span>.<span class="variable">client</span>.<span class="variable">flushdb</span>(<span class="variable">fn</span> || <span class="variable">noop</span>);
};</code></pre>
</td>
</tr>
<tr class="code">
<td class="docs">
<p>Iterate with <code>fn(err, val, key)</code>, then <code>done()</code> when finished.</p>
<h2></h2>
<ul><li><p><strong>param</strong>: <em>Function</em> fn</p></li><li><p><strong>param</strong>: <em>Function</em> done</p></li><li><p><strong>api</strong>: <em>public</em></p></li></ul>
</td>
<td class="code">
<pre><code><span class="class">Redis</span>.<span class="variable">prototype</span>.<span class="variable">each</span> = <span class="keyword">function</span>(<span class="variable">fn</span>, <span class="variable">done</span>){
<span class="keyword">var</span> <span class="variable">self</span> = <span class="this">this</span>;
<span class="this">this</span>.<span class="variable">client</span>.<span class="variable">keys</span>(<span class="string">'*'</span>, <span class="keyword">function</span>(<span class="variable">err</span>, <span class="variable">keys</span>){
<span class="keyword">var</span> <span class="variable">keys</span> = <span class="variable">keys</span>.<span class="variable">toString</span>().<span class="variable">split</span>(<span class="string">' '</span>),
<span class="variable">pending</span> = <span class="variable">keys</span>.<span class="variable">length</span>;
<span class="keyword">for</span> (<span class="keyword">var</span> <span class="variable">i</span> = <span class="number integer">0</span>, <span class="variable">len</span> = <span class="variable">keys</span>.<span class="variable">length</span>; <span class="variable">i</span> &<span class="variable">lt</span>; <span class="variable">len</span>; ++<span class="variable">i</span>) {
(<span class="keyword">function</span>(<span class="variable">key</span>){
<span class="variable">self</span>.<span class="variable">get</span>(<span class="variable">key</span>, <span class="keyword">function</span>(<span class="variable">err</span>, <span class="variable">val</span>){
<span class="variable">fn</span>(<span class="variable">val</span>, <span class="variable">key</span>);
--<span class="variable">pending</span> || (<span class="variable">done</span> &<span class="variable">amp</span>;&<span class="variable">amp</span>; <span class="variable">done</span>());
});
})(<span class="variable">keys</span>[<span class="variable">i</span>]);
}
});
};
</code></pre>
</td>
</tr> </body>
</html></tbody></table>