github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/libraries/syndtr/goleveldb/leveldb/doc.go (about)

     1  // Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
     2  // All rights reserved.
     3  //
     4  // Use of this source code is governed by a BSD-style license that can be
     5  // found in the LICENSE file.
     6  
     7  // Package leveldb provides implementation of LevelDB key/value database.
     8  //
     9  // Create or open a database:
    10  //
    11  //	db, err := leveldb.OpenFile("path/to/db", nil)
    12  //	...
    13  //	defer db.Close()
    14  //	...
    15  //
    16  // Read or modify the database content:
    17  //
    18  //	// Remember that the contents of the returned slice should not be modified.
    19  //	data, err := db.Get([]byte("key"), nil)
    20  //	...
    21  //	err = db.Put([]byte("key"), []byte("value"), nil)
    22  //	...
    23  //	err = db.Delete([]byte("key"), nil)
    24  //	...
    25  //
    26  // Iterate over database content:
    27  //
    28  //	iter := db.NewIterator(nil, nil)
    29  //	for iter.Next() {
    30  //		// Remember that the contents of the returned slice should not be modified, and
    31  //		// only valid until the next call to Next.
    32  //		key := iter.Key()
    33  //		value := iter.Value()
    34  //		...
    35  //	}
    36  //	iter.Release()
    37  //	err = iter.Error()
    38  //	...
    39  //
    40  // Iterate over subset of database content with a particular prefix:
    41  //	iter := db.NewIterator(util.BytesPrefix([]byte("foo-")), nil)
    42  //	for iter.Next() {
    43  //		// Use key/value.
    44  //		...
    45  //	}
    46  //	iter.Release()
    47  //	err = iter.Error()
    48  //	...
    49  //
    50  // Seek-then-Iterate:
    51  //
    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  //
    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  // Batch writes:
    73  //
    74  //	batch := new(leveldb.Batch)
    75  //	batch.Put([]byte("foo"), []byte("value"))
    76  //	batch.Put([]byte("bar"), []byte("another value"))
    77  //	batch.Delete([]byte("baz"))
    78  //	err = db.Write(batch, nil)
    79  //	...
    80  //
    81  // Use bloom filter:
    82  //
    83  //	o := &opt.Options{
    84  //		Filter: filter.NewBloomFilter(10),
    85  //	}
    86  //	db, err := leveldb.OpenFile("path/to/db", o)
    87  //	...
    88  //	defer db.Close()
    89  //	...
    90  package leveldb