28 lines
558 B
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
|
|
}
|