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).