22 lines
446 B
Go
22 lines
446 B
Go
package cache
|
|
|
|
import (
|
|
"fmt"
|
|
"time"
|
|
|
|
"github.com/dgraph-io/badger/v3"
|
|
)
|
|
|
|
func (c *Client) Put(bucket string, key string, val []byte, ttl time.Duration) error {
|
|
if err := c.db.Update(func(txn *badger.Txn) error {
|
|
e := badger.NewEntry([]byte(fmt.Sprintf("%s_%s", bucket, key)), val)
|
|
if ttl > 0 {
|
|
e = e.WithTTL(ttl)
|
|
}
|
|
return txn.SetEntry(e)
|
|
}); err != nil {
|
|
return fmt.Errorf("%v: %v; put: %w", bucket, key, err)
|
|
}
|
|
return nil
|
|
}
|