bdb.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package main
  2. import (
  3. "github.com/dgraph-io/badger/v4"
  4. "log"
  5. )
  6. // DB 使用本地数据库操作对象
  7. func DB() *badger.DB {
  8. opts := badger.DefaultOptions("./data")
  9. opts.ValueLogFileSize = 1 << 24
  10. opts.ValueLogMaxEntries = 10
  11. db, err := badger.Open(opts)
  12. if err != nil {
  13. log.Fatal(err)
  14. }
  15. return db
  16. }
  17. // 数据库操作对象
  18. type bdb struct {
  19. db *badger.DB
  20. }
  21. // Set 保存
  22. func (db *bdb) Set(k, v string) {
  23. err := db.db.Update(func(txn *badger.Txn) error {
  24. err := txn.Set([]byte(k), []byte(v))
  25. return err
  26. })
  27. if err != nil {
  28. log.Println("保存出错:", err)
  29. }
  30. }
  31. // Del 删除
  32. func (db *bdb) Del(k string) {
  33. err := db.db.Update(func(txn *badger.Txn) error {
  34. return txn.Delete([]byte(k))
  35. })
  36. if err != nil {
  37. log.Println("删除error", err)
  38. }
  39. }
  40. // Get 获取
  41. func (db *bdb) Get(k string) string {
  42. v := ""
  43. err := db.db.View(func(txn *badger.Txn) error {
  44. item, err := txn.Get([]byte(k))
  45. if err != nil {
  46. return err
  47. }
  48. err = item.Value(func(val []byte) error {
  49. v = string(val)
  50. return nil
  51. })
  52. if err != nil {
  53. return err
  54. }
  55. return nil
  56. })
  57. if err != nil {
  58. log.Println("获取出错", err)
  59. }
  60. return v
  61. }