代码拉取完成,页面将自动刷新
同步操作将从 sjqzhang/go-fastdfs 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
package doc
import (
"encoding/json"
"fmt"
"github.com/sjqzhang/goutil"
"github.com/syndtr/goleveldb/leveldb"
"github.com/syndtr/goleveldb/leveldb/filter"
"github.com/syndtr/goleveldb/leveldb/opt"
"time"
)
type FileInfo struct {
Name string `json:"name"`
ReName string `json:"rename"`
Path string `json:"path"`
Md5 string `json:"md5"`
Size int64 `json:"size"`
Peers []string `json:"peers"`
Scene string `json:"scene"`
TimeStamp int64 `json:"timeStamp"`
OffSet int64 `json:"offset"`
retry int
op string
}
func testDB() {
util := goutil.Common{}
o := &opt.Options{
Filter: filter.NewBloomFilter(256),
CompactionTableSize: 1024 * 1024 * 20,
WriteBuffer: 1024 * 1024 * 20,
}
db, err := leveldb.OpenFile("path/to/db", o)
count := 100000000
t := time.Now()
for i := 0; i < count; i++ {
name := fmt.Sprintf("%d", i)
md5 := util.MD5(name)
info := FileInfo{
Name: name,
ReName: name,
Path: "files/default/20191015/26/45/23",
Md5: md5,
Size: 0,
Peers: []string{"http://10.1.50.90:8080", "http://10.1.50.91:8080", "http://10.1.50.92:8080"},
Scene: "default",
TimeStamp: time.Now().Unix(),
OffSet: 0,
retry: 0,
op: "",
}
data, _ := json.Marshal(info)
err = db.Put([]byte(md5), data, nil)
if err != nil {
fmt.Println(err)
}
if i%100000 == 0 {
fmt.Println(time.Since(t), " ", i)
}
}
for i := 0; i < 1000; i++ {
t := time.Now()
k := fmt.Sprintf("%d", util.RandInt(0, count))
md5 := util.MD5(k)
db.Get([]byte(md5), nil)
fmt.Println(time.Since(t))
}
if err != nil {
fmt.Println(err)
}
defer db.Close()
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。