cache/range.go

28 lines
558 B
Go

package cache
import (
"bytes"
"github.com/dgraph-io/badger/v3"
)
func (c *CacheRepository) RangePrefix(prefix string) (b []*bytes.Buffer, err error) {
c.cache.View(func(txn *badger.Txn) error {
it := txn.NewIterator(badger.DefaultIteratorOptions)
defer it.Close()
prefix := []byte(prefix)
for it.Seek(prefix); it.ValidForPrefix(prefix); it.Next() {
item := it.Item()
err := item.Value(func(v []byte) error {
b = append(b, bytes.NewBuffer(v))
return nil
})
if err != nil {
return err
}
}
return nil
})
return
}