2014-07-16 06:34:59 +04:00
|
|
|
<!DOCTYPE html>
|
2014-07-22 13:39:29 +04:00
|
|
|
<html lang="en">
|
2014-07-16 06:34:59 +04:00
|
|
|
<head>
|
2014-07-22 13:39:29 +04:00
|
|
|
<meta charset="utf-8">
|
|
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
|
|
<meta name="description" content="">
|
|
|
|
<meta name="author" content="">
|
|
|
|
<link rel="icon" href="favicon.ico">
|
|
|
|
|
|
|
|
<title>LedisDB</title>
|
|
|
|
|
|
|
|
<!-- Bootstrap core CSS -->
|
|
|
|
<link href="css/bootstrap.min.css" rel="stylesheet">
|
|
|
|
<link href="css/font-awesome.min.css" rel="stylesheet">
|
|
|
|
<link rel="stylesheet" href="css/github.css">
|
|
|
|
|
|
|
|
<!-- Custom styles for this template -->
|
|
|
|
<link href="css/style.css" rel="stylesheet">
|
|
|
|
|
|
|
|
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
2014-07-16 06:34:59 +04:00
|
|
|
<!--[if lt IE 9]>
|
2014-07-22 13:39:29 +04:00
|
|
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
|
|
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
2014-07-16 06:34:59 +04:00
|
|
|
<![endif]-->
|
|
|
|
</head>
|
|
|
|
|
|
|
|
<body>
|
|
|
|
|
2014-07-22 13:39:29 +04:00
|
|
|
<div class="container">
|
|
|
|
<div class="header">
|
|
|
|
<ul class="nav nav-pills pull-right" role="tablist">
|
|
|
|
<li role="presentation"><a href="/">Home</a></li>
|
2014-07-24 12:13:06 +04:00
|
|
|
<li role="presentation"><a href="/news.html">News</a></li>
|
2014-07-22 13:39:29 +04:00
|
|
|
<li role="presentation"><a href="/contact.html">Contact</a></li>
|
|
|
|
</ul>
|
2014-07-23 16:24:47 +04:00
|
|
|
<a class="logo" href="/"><img src="/img/logo.png" alt="LedisDB"></a>
|
2014-07-22 13:39:29 +04:00
|
|
|
</div>
|
2014-07-16 06:34:59 +04:00
|
|
|
|
2014-07-22 13:39:29 +04:00
|
|
|
<div class="jumbotron">
|
|
|
|
<h1>LedisDB</h1>
|
2014-08-06 05:32:30 +04:00
|
|
|
<p class="lead">A high performance NoSQL like Redis implemented by Go.</p>
|
2014-07-23 16:24:47 +04:00
|
|
|
<p><a class="btn btn-lg btn-ledis" target="_blank" href="https://github.com/siddontang/ledisdb" role="button">
|
2014-07-22 13:39:29 +04:00
|
|
|
<i class="glyphicon glyphicon-eye-open"></i>
|
|
|
|
View on GitHub</a></p>
|
|
|
|
</div>
|
2014-07-16 06:34:59 +04:00
|
|
|
|
2014-07-22 13:39:29 +04:00
|
|
|
<div class="row features" id="features">
|
|
|
|
<div class="col-lg-6">
|
|
|
|
<h3 class="">Data Structure</h3>
|
|
|
|
<p>Rich advanced data structure: KV, List, Hash, ZSet, Bitmap.</p>
|
|
|
|
|
2014-07-28 13:00:35 +04:00
|
|
|
<h3>Various Backend </h3>
|
2014-08-04 10:35:52 +04:00
|
|
|
<p>Various backend databases to choose: </p>
|
2014-08-04 11:08:00 +04:00
|
|
|
<p>LevelDB, goleveldb, LMDB, RocksDB or BoltDB.</p>
|
2014-07-16 06:34:59 +04:00
|
|
|
|
2014-07-22 13:39:29 +04:00
|
|
|
<h3>Expiration & TTL</h3>
|
|
|
|
<p>Supports expiration and ttl in all kinds of data structures.</p>
|
2014-07-16 06:34:59 +04:00
|
|
|
|
2014-07-22 13:39:29 +04:00
|
|
|
<h3>CLI Support</h3>
|
|
|
|
<p>Redis clients, like redis-cli, are supported directly.</p>
|
2014-07-16 06:34:59 +04:00
|
|
|
|
2014-07-22 13:39:29 +04:00
|
|
|
</div>
|
2014-07-16 06:34:59 +04:00
|
|
|
|
2014-07-22 13:39:29 +04:00
|
|
|
<div class="col-lg-6">
|
|
|
|
|
2014-07-24 06:37:41 +04:00
|
|
|
<h3>Multi-Clients </h3>
|
2014-08-06 05:32:30 +04:00
|
|
|
<p>Multiple clients API supports, including Go, Python, Lua(Openresty).</p>
|
2014-07-16 06:34:59 +04:00
|
|
|
|
2014-07-22 13:39:29 +04:00
|
|
|
<h3>Easy Embedding</h3>
|
2014-08-06 05:32:30 +04:00
|
|
|
<p>Easy to embed in Go application.</p>
|
2014-07-16 06:34:59 +04:00
|
|
|
|
2014-07-22 13:39:29 +04:00
|
|
|
<h3>Data Protection</h3>
|
|
|
|
<p>Replication to guarantee data safety.</p>
|
|
|
|
|
|
|
|
<h3>Useful Tools</h3>
|
|
|
|
<p>Supplies tools to load, dump, and repair database.</p>
|
|
|
|
|
2014-08-04 10:35:52 +04:00
|
|
|
<h3>RESTful API</h3>
|
2014-08-04 10:45:21 +04:00
|
|
|
<p>HTTP interfaces, can be directly accessed by HTTP Clients.</p>
|
|
|
|
<p>Supplies json、bson、msgpack as request content-type.</p>
|
2014-08-04 10:35:52 +04:00
|
|
|
|
|
|
|
|
2014-07-22 13:39:29 +04:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="row examples" id="examples">
|
2014-08-04 11:08:00 +04:00
|
|
|
<div class="exmaple">
|
|
|
|
<h2>CLI Example</h2>
|
2014-07-22 13:39:29 +04:00
|
|
|
<pre><code class="Bash">
|
|
|
|
./ledis-server -config=/etc/ledis.json
|
2014-07-16 06:34:59 +04:00
|
|
|
|
|
|
|
//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"
|
2014-07-22 13:39:29 +04:00
|
|
|
</code></pre>
|
2014-08-04 11:08:00 +04:00
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class"example">
|
|
|
|
<h2>RESTful Example</h2>
|
|
|
|
<pre><code class="Bash">
|
|
|
|
//use curl
|
|
|
|
curl http://127.0.0.1:11181/SET/hello/world
|
|
|
|
→ {"SET":[true,"OK"]}
|
2014-07-16 06:34:59 +04:00
|
|
|
|
2014-08-04 11:08:00 +04:00
|
|
|
curl http://127.0.0.1:11181/0/GET/hello?type=json
|
|
|
|
→ {"GET":"world"}
|
|
|
|
</code></pre>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="example">
|
2014-07-22 13:39:29 +04:00
|
|
|
<h2>Lib Example</h2>
|
|
|
|
<pre><code class="Bash">
|
|
|
|
import "github.com/siddontang/ledisdb/ledis"
|
2014-07-16 06:34:59 +04:00
|
|
|
l, _ := ledis.Open(cfg)
|
|
|
|
db, _ := l.Select(0)
|
|
|
|
|
|
|
|
db.Set(key, value)
|
|
|
|
|
|
|
|
db.Get(key)
|
2014-07-22 13:39:29 +04:00
|
|
|
</code></pre>
|
|
|
|
</div>
|
2014-08-04 11:08:00 +04:00
|
|
|
</div>
|
2014-07-16 06:34:59 +04:00
|
|
|
|
2014-07-22 13:39:29 +04:00
|
|
|
<!-- /benchmark-->
|
|
|
|
<div class="row benchmark" id="benchmark">
|
|
|
|
<h2>Benchmark</h2>
|
2014-08-01 13:15:39 +04:00
|
|
|
|
|
|
|
<div id="container" style="width: 1150px; height: 400px; margin: 0 0 20px 0 "></div>
|
|
|
|
<div id="container_ledis" style="width: 1150px; height: 400px; margin: 0 auto"></div>
|
|
|
|
|
|
|
|
|
2014-07-16 06:34:59 +04:00
|
|
|
|
2014-07-22 13:39:29 +04:00
|
|
|
<br>
|
2014-07-28 10:27:56 +04:00
|
|
|
<p>For more information, please take a look at <a href="https://github.com/siddontang/ledisdb/wiki/Benchmark"><em>benchmark.md</em></a>.</p>
|
2014-07-22 13:39:29 +04:00
|
|
|
</div>
|
2014-07-16 06:34:59 +04:00
|
|
|
|
2014-07-22 13:39:29 +04:00
|
|
|
<div id="footer-wrapper" class="gradient">
|
|
|
|
<div id="footer" class="row">
|
|
|
|
<div class="large-4 columns col-sm-4">
|
|
|
|
<h2 id="contribute" >Get Involved</h2>
|
|
|
|
<ul class="underline-link">
|
|
|
|
<li><a target="_blank" href="https://github.com/siddontang/ledisdb/issues?state=open">Issue Tracker</a></li>
|
|
|
|
<li><a target="_blank" href="https://github.com/siddontang/ledisdb/issues?labels=todo&page=1&state=open">Todo</a></li>
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="large-4 columns col-sm-4">
|
|
|
|
<h2>Quick Links</h2>
|
|
|
|
<ul class="underline-link">
|
|
|
|
<li><a target="_blank" href="https://github.com/siddontang/ledisdb/wiki">Wiki</a></li>
|
|
|
|
<li><a target="_blank" href="http://ledis-py.readthedocs.org/">Ledis-py</a></li>
|
|
|
|
<li><a target="_blank" href="https://godoc.org/github.com/siddontang/ledisdb">Godoc</a></li>
|
|
|
|
<li><a target="_blank" href="http://blog.csdn.net/siddontang/article/category/2264003">Author's Chinese Blog</a></li>
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div id="about" class="about">
|
|
|
|
<div class="foot">
|
|
|
|
<p>LedisDB was created and maintained by <a class="underline-link" href="https://github.com/siddontang">SiddonTang</a>.
|
|
|
|
<a class="underline-link" href="https://github.com/siddontang/ledisdb/blob/master/LICENSE">MIT License</a>.</p>
|
|
|
|
</div>
|
|
|
|
</div>
|
2014-07-16 06:34:59 +04:00
|
|
|
</div>
|
2014-07-16 16:59:07 +04:00
|
|
|
|
2014-07-22 13:39:29 +04:00
|
|
|
</div> <!-- /container -->
|
2014-07-16 16:59:07 +04:00
|
|
|
|
|
|
|
|
2014-07-22 13:39:29 +04:00
|
|
|
<script src="js/jquery-1.11.1.min.js"></script>
|
|
|
|
<script src="js/highlight.pack.js"></script>
|
|
|
|
<script>hljs.initHighlightingOnLoad();</script>
|
|
|
|
|
|
|
|
<script src="http://code.highcharts.com/highcharts.js"></script>
|
|
|
|
<script src="http://code.highcharts.com/modules/data.js"></script>
|
|
|
|
<script src="http://code.highcharts.com/modules/exporting.js"></script>
|
2014-08-01 13:15:39 +04:00
|
|
|
|
|
|
|
<script type="text/javascript">
|
|
|
|
$(document).ready(function() {
|
|
|
|
|
|
|
|
|
|
|
|
var options = {
|
|
|
|
chart: {
|
|
|
|
renderTo: 'container',
|
|
|
|
type: 'column'
|
|
|
|
},
|
|
|
|
title: {
|
|
|
|
text: 'Redis-Benchmark'
|
|
|
|
},
|
|
|
|
xAxis: {
|
|
|
|
categories: []
|
|
|
|
},
|
|
|
|
yAxis: {
|
|
|
|
title: {
|
|
|
|
text: 'Requests'
|
|
|
|
}
|
|
|
|
},
|
|
|
|
series: [],
|
2014-08-04 10:35:52 +04:00
|
|
|
colors: ['#45a797', "#89C4F4", "#9B59B6", "#fddd67", "#5fa727",'#df4810', '#3d4c4e']
|
2014-08-01 13:15:39 +04:00
|
|
|
};
|
|
|
|
|
|
|
|
var options_ledis = {
|
|
|
|
chart: {
|
|
|
|
renderTo: 'container_ledis',
|
|
|
|
type: 'column'
|
|
|
|
},
|
|
|
|
title: {
|
|
|
|
text: 'Ledis-Benchmark'
|
|
|
|
},
|
|
|
|
xAxis: {
|
|
|
|
categories: []
|
|
|
|
},
|
|
|
|
yAxis: {
|
|
|
|
title: {
|
|
|
|
text: 'Requests'
|
|
|
|
}
|
|
|
|
},
|
|
|
|
series: [],
|
2014-08-04 10:35:52 +04:00
|
|
|
colors: ['#45a797', "#89C4F4", "#9B59B6", "#fddd67", "#5fa727",'#df4810', '#3d4c4e']
|
2014-08-01 13:15:39 +04:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
$.get('redis.csv', function (data) {
|
|
|
|
parse(data, options);
|
|
|
|
});
|
|
|
|
|
|
|
|
$.get('ledis.csv', function (data){
|
|
|
|
parse(data, options_ledis)
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
function parse(data, options) {
|
|
|
|
// Split the lines
|
|
|
|
var lines = data.split('\n');
|
2014-08-04 10:35:52 +04:00
|
|
|
console.log(lines.length);
|
2014-08-01 13:15:39 +04:00
|
|
|
$.each(lines, function(lineNo, line) {
|
|
|
|
var items = line.split(',');
|
|
|
|
|
|
|
|
// header line containes categories
|
|
|
|
if (lineNo == 0) {
|
|
|
|
$.each(items, function(itemNo, item) {
|
|
|
|
if (itemNo > 0) options.xAxis.categories.push(item);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
// the rest of the lines contain data with their name in the first position
|
2014-08-04 10:35:52 +04:00
|
|
|
else if (lineNo < lines.length - 1) {
|
2014-08-01 13:15:39 +04:00
|
|
|
var series = {
|
|
|
|
data: []
|
|
|
|
};
|
|
|
|
$.each(items, function(itemNo, item) {
|
|
|
|
if (itemNo == 0) {
|
|
|
|
series.name = item;
|
|
|
|
} else{
|
|
|
|
series.data.push(parseFloat(item));
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
options.series.push(series);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2014-07-22 13:39:29 +04:00
|
|
|
});
|
2014-08-01 13:15:39 +04:00
|
|
|
|
|
|
|
var chart = new Highcharts.Chart(options);
|
|
|
|
}
|
|
|
|
|
2014-07-22 13:39:29 +04:00
|
|
|
});
|
|
|
|
</script>
|
|
|
|
|
|
|
|
</body>
|
2014-07-16 07:21:24 +04:00
|
|
|
</html>
|