github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/libraries/syndtr/goleveldb/README.md (about) 1 This is an implementation of the [LevelDB key/value database](http:code.google.com/p/leveldb) in the [Go programming language](http:golang.org). 2 3 [![Build Status](https://travis-ci.org/syndtr/goleveldb.png?branch=master)](https://travis-ci.org/syndtr/goleveldb) 4 5 Installation 6 ----------- 7 8 go get github.com/syndtr/goleveldb/leveldb 9 10 Requirements 11 ----------- 12 13 * Need at least `go1.4` or newer. 14 15 Usage 16 ----------- 17 18 Create or open a database: 19 ```go 20 db, err := leveldb.OpenFile("path/to/db", nil) 21 ... 22 defer db.Close() 23 ... 24 ``` 25 Read or modify the database content: 26 ```go 27 // Remember that the contents of the returned slice should not be modified. 28 data, err := db.Get([]byte("key"), nil) 29 ... 30 err = db.Put([]byte("key"), []byte("value"), nil) 31 ... 32 err = db.Delete([]byte("key"), nil) 33 ... 34 ``` 35 36 Iterate over database content: 37 ```go 38 iter := db.NewIterator(nil, nil) 39 for iter.Next() { 40 // Remember that the contents of the returned slice should not be modified, and 41 // only valid until the next call to Next. 42 key := iter.Key() 43 value := iter.Value() 44 ... 45 } 46 iter.Release() 47 err = iter.Error() 48 ... 49 ``` 50 Seek-then-Iterate: 51 ```go 52 iter := db.NewIterator(nil, nil) 53 for ok := iter.Seek(key); ok; ok = iter.Next() { 54 // Use key/value. 55 ... 56 } 57 iter.Release() 58 err = iter.Error() 59 ... 60 ``` 61 Iterate over subset of database content: 62 ```go 63 iter := db.NewIterator(&util.Range{Start: []byte("foo"), Limit: []byte("xoo")}, nil) 64 for iter.Next() { 65 // Use key/value. 66 ... 67 } 68 iter.Release() 69 err = iter.Error() 70 ... 71 ``` 72 Iterate over subset of database content with a particular prefix: 73 ```go 74 iter := db.NewIterator(util.BytesPrefix([]byte("foo-")), nil) 75 for iter.Next() { 76 // Use key/value. 77 ... 78 } 79 iter.Release() 80 err = iter.Error() 81 ... 82 ``` 83 Batch writes: 84 ```go 85 batch := new(leveldb.Batch) 86 batch.Put([]byte("foo"), []byte("value")) 87 batch.Put([]byte("bar"), []byte("another value")) 88 batch.Delete([]byte("baz")) 89 err = db.Write(batch, nil) 90 ... 91 ``` 92 Use bloom filter: 93 ```go 94 o := &opt.Options{ 95 Filter: filter.NewBloomFilter(10), 96 } 97 db, err := leveldb.OpenFile("path/to/db", o) 98 ... 99 defer db.Close() 100 ... 101 ``` 102 Documentation 103 ----------- 104 105 You can read package documentation [here](http:godoc.org/github.com/syndtr/goleveldb).