update
This commit is contained in:
+32
-14
@@ -4,36 +4,54 @@ import (
|
||||
"github.com/boltdb/bolt"
|
||||
)
|
||||
|
||||
var name = "sillyGirl"
|
||||
var sillyGirl Bucket = "sillyGirl"
|
||||
var db *bolt.DB
|
||||
|
||||
type Bucket string
|
||||
|
||||
func init() {
|
||||
var err error
|
||||
db, err = bolt.Open(ExecPath+"/"+name+".cache", 0600, nil)
|
||||
db, err = bolt.Open(ExecPath+"/sillyGirl.cache", 0600, nil)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
err = db.Update(func(tx *bolt.Tx) error {
|
||||
b := tx.Bucket([]byte(name))
|
||||
if b == nil {
|
||||
tx.CreateBucket([]byte(name))
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
func Set(key string, value string) {
|
||||
func (bucket Bucket) Set(key, value string) {
|
||||
db.Update(func(tx *bolt.Tx) error {
|
||||
tx.Bucket([]byte(name)).Put([]byte(key), []byte(value))
|
||||
b := tx.Bucket([]byte(bucket))
|
||||
if b == nil {
|
||||
b, _ = tx.CreateBucket([]byte(bucket))
|
||||
}
|
||||
b.Put([]byte(key), []byte(value))
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
func Get(key string) string {
|
||||
value := ""
|
||||
func (bucket Bucket) Get(kv ...string) string {
|
||||
var key, value string
|
||||
for i := range kv {
|
||||
if i == 0 {
|
||||
key = kv[0]
|
||||
} else {
|
||||
value = kv[1]
|
||||
}
|
||||
}
|
||||
db.View(func(tx *bolt.Tx) error {
|
||||
value = string(tx.Bucket([]byte(name)).Get([]byte(key)))
|
||||
b := tx.Bucket([]byte(bucket))
|
||||
if b == nil {
|
||||
return nil
|
||||
}
|
||||
value = string(b.Get([]byte(key)))
|
||||
return nil
|
||||
})
|
||||
return value
|
||||
}
|
||||
|
||||
func (bucket Bucket) Foreach(f func(k, v []byte) error) {
|
||||
db.View(func(tx *bolt.Tx) error {
|
||||
b := tx.Bucket([]byte(bucket))
|
||||
b.ForEach(f)
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user