forked from mirror/ledisdb
177 lines
5.8 KiB
HTML
177 lines
5.8 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset='utf-8'>
|
|
<meta http-equiv="X-UA-Compatible" content="chrome=1">
|
|
<!--link href='https://fonts.googleapis.com/css?family=Chivo:900' rel='stylesheet' type='text/css'-->
|
|
<link rel="stylesheet" type="text/css" href="stylesheets/stylesheet.css" media="screen" />
|
|
<link rel="stylesheet" type="text/css" href="stylesheets/pygment_trac.css" media="screen" />
|
|
<link rel="stylesheet" type="text/css" href="stylesheets/print.css" media="print" />
|
|
<!--[if lt IE 9]>
|
|
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
|
<![endif]-->
|
|
<title>LedisDB</title>
|
|
</head>
|
|
|
|
<body>
|
|
<div id="container">
|
|
<div class="inner">
|
|
|
|
<header>
|
|
<h1>LedisDB</h1>
|
|
<h2>a high performance NoSQL powered by Golang</h2>
|
|
</header>
|
|
|
|
<section id="downloads" class="clearfix">
|
|
<a href="https://github.com/siddontang/ledisdb/zipball/master" id="download-zip" class="button"><span>Download .zip</span></a>
|
|
<a href="https://github.com/siddontang/ledisdb/tarball/master" id="download-tar-gz" class="button"><span>Download .tar.gz</span></a>
|
|
<a href="https://github.com/siddontang/ledisdb" id="view-on-github" class="button"><span>View on GitHub</span></a>
|
|
</section>
|
|
|
|
<hr>
|
|
|
|
<section id="main_content">
|
|
<h1>
|
|
<a name="ledisdb" class="anchor" href="#ledisdb"><span class="octicon octicon-link"></span></a>LedisDB</h1>
|
|
|
|
<p>Ledisdb is a high performance NoSQL like Redis based on LevelDB written by go. It supports some advanced data structure like kv, list, hash and zset, and may be alternative for Redis.</p>
|
|
|
|
<h2>
|
|
<a name="features" class="anchor" href="#features"><span class="octicon octicon-link"></span></a>Features</h2>
|
|
|
|
<ul>
|
|
<li>Rich advanced data structure: KV, List, Hash, ZSet, Bit.</li>
|
|
<li>Uses leveldb to store lots of data, over the memory limit. </li>
|
|
<li>Supports expiration and ttl.</li>
|
|
<li>Redis clients, like redis-cli, are supported directly.</li>
|
|
<li>Multi client API supports, including Golang, Python, Lua(Openresty). </li>
|
|
<li>Easily to embed in Golang application. </li>
|
|
<li>Replication to guarantee data safe.</li>
|
|
<li>Supplies tools to load, dump, repair database. </li>
|
|
</ul><h2>
|
|
<a name="build-and-install" class="anchor" href="#build-and-install"><span class="octicon octicon-link"></span></a>Build and Install</h2>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>Create a workspace and checkout ledisdb source</p>
|
|
|
|
<pre><code>mkdir $WORKSPACE
|
|
cd $WORKSPACE
|
|
git clone git@github.com:siddontang/ledisdb.git src/github.com/siddontang/ledisdb
|
|
|
|
cd src/github.com/siddontang/ledisdb
|
|
</code></pre>
|
|
</li>
|
|
<li>
|
|
<p>Install leveldb and snappy, if you have installed, skip.</p>
|
|
|
|
<p>I supply a simple shell to install leveldb and snappy, you can use: </p>
|
|
|
|
<pre><code>sh build_leveldb.sh
|
|
</code></pre>
|
|
|
|
<p>It will default install leveldb at /usr/local/leveldb and snappy at /usr/local/snappy</p>
|
|
</li>
|
|
<li><p>Change LEVELDB_DIR and SNAPPY_DIR to real install path in dev.sh.</p></li>
|
|
<li>
|
|
<p>Then:</p>
|
|
|
|
<pre><code>. ./bootstap.sh
|
|
. ./dev.sh
|
|
|
|
go install ./...
|
|
</code></pre>
|
|
</li>
|
|
</ul><h2>
|
|
<a name="run" class="anchor" href="#run"><span class="octicon octicon-link"></span></a>Run</h2>
|
|
|
|
<pre><code>./ledis-server -config=/etc/ledis.json
|
|
|
|
//another shell
|
|
ledis-cli -p 6380
|
|
|
|
ledis 127.0.0.1:6380> set a 1
|
|
OK
|
|
ledis 127.0.0.1:6380> get a
|
|
"1"
|
|
</code></pre>
|
|
|
|
<h2>
|
|
<a name="lib" class="anchor" href="#lib"><span class="octicon octicon-link"></span></a>Lib</h2>
|
|
|
|
<pre><code>import "github.com/siddontang/ledisdb/ledis"
|
|
l, _ := ledis.Open(cfg)
|
|
db, _ := l.Select(0)
|
|
|
|
db.Set(key, value)
|
|
|
|
db.Get(key)
|
|
</code></pre>
|
|
|
|
<h2>
|
|
<a name="replication" class="anchor" href="#replication"><span class="octicon octicon-link"></span></a>Replication</h2>
|
|
|
|
<p>set slaveof in config or dynamiclly</p>
|
|
|
|
<pre><code>ledis-cli -p 6381
|
|
|
|
ledis 127.0.0.1:6381> slaveof 127.0.0.1:6380
|
|
OK
|
|
</code></pre>
|
|
|
|
<h2>
|
|
<a name="benchmark" class="anchor" href="#benchmark"><span class="octicon octicon-link"></span></a>Benchmark</h2>
|
|
|
|
<p>See benchmark.md for more.</p>
|
|
|
|
<h2>
|
|
<a name="todo" class="anchor" href="#todo"><span class="octicon octicon-link"></span></a>Todo</h2>
|
|
|
|
<ul>
|
|
<li>Admin</li>
|
|
</ul><h2>
|
|
<a name="godoc" class="anchor" href="#godoc"><span class="octicon octicon-link"></span></a>GoDoc</h2>
|
|
|
|
<p><a href="https://godoc.org/github.com/siddontang/ledisdb"><img src="https://godoc.org/github.com/siddontang/ledisdb?status.png" alt="GoDoc"></a></p>
|
|
|
|
<h2>
|
|
<a name="commands" class="anchor" href="#commands"><span class="octicon octicon-link"></span></a>Commands</h2>
|
|
|
|
<p>Some server commands explaintions are <a href="https://github.com/siddontang/ledisdb/wiki/Commands">here</a>, others will add continuate.</p>
|
|
|
|
<h2>
|
|
<a name="thanks" class="anchor" href="#thanks"><span class="octicon octicon-link"></span></a>Thanks</h2>
|
|
|
|
<p>Gmail: <a href="mailto:cenqichao@gmail.com">cenqichao@gmail.com</a></p>
|
|
|
|
<p>Gmail: <a href="mailto:chendahui007@gmail.com">chendahui007@gmail.com</a></p>
|
|
|
|
<h2>
|
|
<a name="feedback" class="anchor" href="#feedback"><span class="octicon octicon-link"></span></a>Feedback</h2>
|
|
|
|
<p>Gmail: <a href="mailto:siddontang@gmail.com">siddontang@gmail.com</a></p>
|
|
</section>
|
|
|
|
<footer>
|
|
Ledisdb is maintained by <a href="https://github.com/siddontang">siddontang</a><br>
|
|
This page was generated by <a href="http://pages.github.com">GitHub Pages</a>. Tactile theme by <a href="https://twitter.com/jasonlong">Jason Long</a>.
|
|
</footer>
|
|
|
|
|
|
</div>
|
|
</div>
|
|
</body>
|
|
|
|
<script>
|
|
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
|
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
|
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
|
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
|
|
|
ga('create', 'UA-27956076-2', 'auto');
|
|
ga('send', 'pageview');
|
|
|
|
</script>
|
|
|
|
</html>
|