mirror of
				https://github.com/1Panel-dev/1Panel.git
				synced 2025-10-25 06:56:32 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			52 lines
		
	
	
	
		
			877 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
	
		
			877 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package badger_db
 | |
| 
 | |
| import (
 | |
| 	"github.com/patrickmn/go-cache"
 | |
| 	"strings"
 | |
| 	"time"
 | |
| )
 | |
| 
 | |
| type Cache struct {
 | |
| 	db *cache.Cache
 | |
| }
 | |
| 
 | |
| func NewCacheDB() *Cache {
 | |
| 	db := cache.New(5*time.Minute, 10*time.Minute)
 | |
| 	return &Cache{
 | |
| 		db: db,
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func (c *Cache) Set(key string, value interface{}) {
 | |
| 	c.db.Set(key, value, cache.DefaultExpiration)
 | |
| }
 | |
| 
 | |
| func (c *Cache) SetWithTTL(key string, value interface{}, d time.Duration) {
 | |
| 	c.db.Set(key, value, d)
 | |
| }
 | |
| func (c *Cache) Del(key string) {
 | |
| 	c.db.Delete(key)
 | |
| }
 | |
| 
 | |
| func (c *Cache) Clean() error {
 | |
| 	return nil
 | |
| }
 | |
| 
 | |
| func (c *Cache) Get(key string) string {
 | |
| 	obj, exist := c.db.Get(key)
 | |
| 	if !exist {
 | |
| 		return ""
 | |
| 	}
 | |
| 	return obj.(string)
 | |
| }
 | |
| 
 | |
| func (c *Cache) PrefixScanKey(prefixStr string) []string {
 | |
| 	var res []string
 | |
| 	values := c.db.Items()
 | |
| 	for key := range values {
 | |
| 		if strings.HasPrefix(key, prefixStr) {
 | |
| 			res = append(res, key)
 | |
| 		}
 | |
| 	}
 | |
| 	return res
 | |
| }
 |