Documentation
¶
Index ¶
- type BadgerDB
- func (b *BadgerDB) Close() error
- func (b *BadgerDB) Del(key string) error
- func (b *BadgerDB) Exists(key string) bool
- func (b *BadgerDB) FindKeys(prefix string) ([]string, error)
- func (b *BadgerDB) FindXKeys(prefix string) ([]string, error)
- func (b *BadgerDB) Get(key string) ([]byte, error)
- func (b *BadgerDB) GetS(key string) (string, error)
- func (b *BadgerDB) RunGC(discardRatio float64) error
- func (b *BadgerDB) Set(key string, value []byte) error
- func (b *BadgerDB) SetS(key string, value string) error
- func (b *BadgerDB) XDecr(key string) (int64, error)
- func (b *BadgerDB) XDecrBy(key string, decrement int64) (int64, error)
- func (b *BadgerDB) XExpire(key string, expires time.Duration) error
- func (b *BadgerDB) XExpireAt(key string, tm time.Time) error
- func (b *BadgerDB) XExpireSec(key string, seconds int64) error
- func (b *BadgerDB) XGet(key string) ([]byte, error)
- func (b *BadgerDB) XGetS(key string) (string, error)
- func (b *BadgerDB) XIncr(key string) (int64, error)
- func (b *BadgerDB) XIncrBy(key string, increment int64) (int64, error)
- func (b *BadgerDB) XSet(key string, value []byte) error
- func (b *BadgerDB) XSetEx(key string, value []byte, expires time.Duration) error
- func (b *BadgerDB) XSetExS(key string, value string, expires time.Duration) error
- func (b *BadgerDB) XSetExSec(key string, value []byte, seconds int64) error
- func (b *BadgerDB) XSetExSecS(key string, value string, seconds int64) error
- func (b *BadgerDB) XSetS(key string, value string) error
- func (b *BadgerDB) XTTL(key string) (int64, error)
- type CacheType
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BadgerDB ¶
type BadgerDB struct {
// contains filtered or unexported fields
}
BadgerDB 结构体封装了 badger 的基本操作
func NewBadgerDB ¶
NewBadgerDB 创建一个新的 BadgerDB 实例 示例:
db, err := NewBadgerDB("./data")
if err != nil {
log.Fatal(err)
}
defer db.Close()
func NewBadgerDBWithOptions ¶
NewBadgerDBWithOptions 创建一个带自定义选项的 BadgerDB 实例 示例:
opts := badger.DefaultOptions("./data")
opts.SyncWrites = true
db, err := NewBadgerDBWithOptions(opts)
if err != nil {
log.Fatal(err)
}
defer db.Close()
func (*BadgerDB) Exists ¶
Exists 检查key是否存在 示例:
if db.Exists("key") {
fmt.Println("key存在")
} else {
fmt.Println("key不存在")
}
func (*BadgerDB) FindKeys ¶ added in v0.1.1
FindKeys 扫描所有匹配指定前缀的key列表 返回所有匹配前缀的key,包括普通存储和带过期时间存储的key 示例:
keys, err := db.FindKeys("user:")
if err != nil {
log.Fatal(err)
}
for _, key := range keys {
fmt.Printf("找到key: %s\n", key)
}
func (*BadgerDB) FindXKeys ¶ added in v0.1.1
FindXKeys 扫描所有匹配指定前缀且未过期的key列表 只返回带过期时间存储且未过期的key,会自动清理已过期的key 示例:
keys, err := db.FindXKeys("cache:")
if err != nil {
log.Fatal(err)
}
for _, key := range keys {
fmt.Printf("找到未过期的key: %s\n", key)
}
func (*BadgerDB) Get ¶
Get 获取指定key的值 示例:
value, err := db.Get("key")
if err != nil {
log.Fatal(err)
}
fmt.Printf("值: %s\n", value)
func (*BadgerDB) GetS ¶
GetS 获取指定key的字符串值 示例:
value, err := db.GetS("key")
if err != nil {
log.Fatal(err)
}
fmt.Printf("字符串值: %s\n", value)
func (*BadgerDB) RunGC ¶
RunGC 运行垃圾回收以清理过期的值日志 返回值: - 如果垃圾回收成功或没有需要清理的数据,返回 nil - 如果发生真正的错误,返回相应的错误 示例:
err := db.RunGC(0.5) // 丢弃比例为0.5
if err != nil {
log.Fatal(err)
}
func (*BadgerDB) Set ¶
Set 设置key的值 示例:
err := db.Set("key", []byte("value"))
if err != nil {
log.Fatal(err)
}
func (*BadgerDB) SetS ¶
SetS 设置key的字符串值 示例:
err := db.SetS("key", "value")
if err != nil {
log.Fatal(err)
}
func (*BadgerDB) XDecr ¶
XDecr 将key中存储的数字值减1 该方法是并发安全的 示例:
value, err := db.XDecr("counter")
if err != nil {
log.Fatal(err)
}
fmt.Printf("新值: %d\n", value)
func (*BadgerDB) XDecrBy ¶
XDecrBy 将key中存储的数字值减少指定的值 该方法是并发安全的 示例:
value, err := db.XDecrBy("counter", 10)
if err != nil {
log.Fatal(err)
}
fmt.Printf("新值: %d\n", value)
func (*BadgerDB) XExpire ¶
XExpire 设置key的过期时间 示例:
err := db.XExpire("key", time.Hour)
if err != nil {
log.Fatal(err)
}
func (*BadgerDB) XExpireAt ¶
XExpireAt 设置key的过期时间点 该方法是并发安全的 示例:
err := db.XExpireAt("key", time.Now().Add(time.Hour))
if err != nil {
log.Fatal(err)
}
func (*BadgerDB) XExpireSec ¶
XExpireSec 设置key的过期时间(秒) 示例:
err := db.XExpireSec("key", 3600)
if err != nil {
log.Fatal(err)
}
func (*BadgerDB) XGet ¶
XGet 获取带过期时间的缓存数据 当数据过期时会自动删除并返回nil 示例:
value, err := db.XGet("key")
if err != nil {
log.Fatal(err)
}
if value == nil {
fmt.Println("key不存在或已过期")
} else {
fmt.Printf("值: %s\n", value)
}
func (*BadgerDB) XGetS ¶
XGetS 获取带过期时间的字符串数据 示例:
value, err := db.XGetS("key")
if err != nil {
log.Fatal(err)
}
if value == "" {
fmt.Println("key不存在或已过期")
} else {
fmt.Printf("字符串值: %s\n", value)
}
func (*BadgerDB) XIncr ¶
XIncr 将key中存储的数字值加1 该方法是并发安全的 示例:
value, err := db.XIncr("counter")
if err != nil {
log.Fatal(err)
}
fmt.Printf("新值: %d\n", value)
func (*BadgerDB) XIncrBy ¶
XIncrBy 将key中存储的数字值增加指定的值 该方法是并发安全的 示例:
value, err := db.XIncrBy("counter", 10)
if err != nil {
log.Fatal(err)
}
fmt.Printf("新值: %d\n", value)
func (*BadgerDB) XSet ¶
XSet 设置带过期时间的缓存数据 示例:
err := db.XSet("key", []byte("value"))
if err != nil {
log.Fatal(err)
}
func (*BadgerDB) XSetEx ¶
XSetEx 设置带过期时间的缓存数据 (使用 time.Duration) 示例:
err := db.XSetEx("key", []byte("value"), time.Hour)
if err != nil {
log.Fatal(err)
}
func (*BadgerDB) XSetExS ¶
XSetExS 设置带过期时间的字符串数据 (使用 time.Duration) 示例:
err := db.XSetExS("key", "value", time.Hour)
if err != nil {
log.Fatal(err)
}
func (*BadgerDB) XSetExSec ¶
XSetExSec 设置带过期时间的缓存数据(使用秒数) 示例:
err := db.XSetExSec("key", []byte("value"), 3600)
if err != nil {
log.Fatal(err)
}
func (*BadgerDB) XSetExSecS ¶
XSetExSecS 设置带过期时间的字符串数据(使用秒数) 示例:
err := db.XSetExSecS("key", "value", 3600)
if err != nil {
log.Fatal(err)
}
func (*BadgerDB) XSetS ¶
XSetS 设置带过期时间的字符串数据 示例:
err := db.XSetS("key", "value")
if err != nil {
log.Fatal(err)
}