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