Платформа ЦРНП "Мирокод" для разработки проектов
https://git.mirocod.ru
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.8 KiB
61 lines
1.8 KiB
// package nodb is a high performance embedded NoSQL. |
|
// |
|
// nodb supports various data structure like kv, list, hash and zset like redis. |
|
// |
|
// Other features include binlog replication, data with a limited time-to-live. |
|
// |
|
// Usage |
|
// |
|
// First create a nodb instance before use: |
|
// |
|
// l := nodb.Open(cfg) |
|
// |
|
// cfg is a Config instance which contains configuration for nodb use, |
|
// like DataDir (root directory for nodb working to store data). |
|
// |
|
// After you create a nodb instance, you can select a DB to store you data: |
|
// |
|
// db, _ := l.Select(0) |
|
// |
|
// DB must be selected by a index, nodb supports only 16 databases, so the index range is [0-15]. |
|
// |
|
// KV |
|
// |
|
// KV is the most basic nodb type like any other key-value database. |
|
// |
|
// err := db.Set(key, value) |
|
// value, err := db.Get(key) |
|
// |
|
// List |
|
// |
|
// List is simply lists of values, sorted by insertion order. |
|
// You can push or pop value on the list head (left) or tail (right). |
|
// |
|
// err := db.LPush(key, value1) |
|
// err := db.RPush(key, value2) |
|
// value1, err := db.LPop(key) |
|
// value2, err := db.RPop(key) |
|
// |
|
// Hash |
|
// |
|
// Hash is a map between fields and values. |
|
// |
|
// n, err := db.HSet(key, field1, value1) |
|
// n, err := db.HSet(key, field2, value2) |
|
// value1, err := db.HGet(key, field1) |
|
// value2, err := db.HGet(key, field2) |
|
// |
|
// ZSet |
|
// |
|
// ZSet is a sorted collections of values. |
|
// Every member of zset is associated with score, a int64 value which used to sort, from smallest to greatest score. |
|
// Members are unique, but score may be same. |
|
// |
|
// n, err := db.ZAdd(key, ScorePair{score1, member1}, ScorePair{score2, member2}) |
|
// ay, err := db.ZRangeByScore(key, minScore, maxScore, 0, -1) |
|
// |
|
// Binlog |
|
// |
|
// nodb supports binlog, so you can sync binlog to another server for replication. If you want to open binlog support, set UseBinLog to true in config. |
|
// |
|
package nodb
|
|
|