1
0
mirror of https://github.com/1Panel-dev/1Panel.git synced 2025-01-20 08:49:16 +08:00

76 lines
1.9 KiB
Go
Raw Normal View History

2022-08-16 23:30:23 +08:00
package cache
import (
2022-08-25 17:54:52 +08:00
"fmt"
2022-08-16 23:30:23 +08:00
"github.com/1Panel-dev/1Panel/global"
"github.com/1Panel-dev/1Panel/init/cache/badger_db"
"github.com/dgraph-io/badger/v3"
2022-08-25 17:54:52 +08:00
"time"
2022-08-16 23:30:23 +08:00
)
func Init() {
c := global.CONF.Cache
2022-08-25 17:54:52 +08:00
options := badger.Options{
Dir: c.Path,
ValueDir: c.Path,
ValueLogFileSize: 102400000,
ValueLogMaxEntries: 100000,
VLogPercentile: 0.1,
MemTableSize: 64 << 20,
BaseTableSize: 2 << 20,
BaseLevelSize: 10 << 20,
TableSizeMultiplier: 2,
LevelSizeMultiplier: 10,
MaxLevels: 7,
NumGoroutines: 8,
MetricsEnabled: true,
NumCompactors: 4,
NumLevelZeroTables: 5,
NumLevelZeroTablesStall: 15,
NumMemtables: 5,
BloomFalsePositive: 0.01,
BlockSize: 4 * 1024,
SyncWrites: false,
NumVersionsToKeep: 1,
CompactL0OnClose: false,
VerifyValueChecksum: false,
BlockCacheSize: 256 << 20,
IndexCacheSize: 0,
ZSTDCompressionLevel: 1,
EncryptionKey: []byte{},
EncryptionKeyRotationDuration: 10 * 24 * time.Hour, // Default 10 days.
DetectConflicts: true,
NamespaceOffset: -1,
}
cache, err := badger.Open(options)
2022-08-16 23:30:23 +08:00
if err != nil {
panic(err)
}
global.CACHE = badger_db.NewCacheDB(cache)
2022-08-25 17:54:52 +08:00
err = cache.View(func(txn *badger.Txn) error {
opts := badger.DefaultIteratorOptions
opts.PrefetchValues = false
it := txn.NewIterator(opts)
defer it.Close()
for it.Rewind(); it.Valid(); it.Next() {
item := it.Item()
k := item.Key()
fmt.Printf("key=%s\n", k)
}
return nil
})
if err != nil {
panic(err)
}
fmt.Printf("run gc")
err = cache.RunValueLogGC(0.01)
if err != nil {
fmt.Printf(err.Error())
}
2022-08-16 23:30:23 +08:00
}