当前位置: 首页>>代码示例>>Golang>>正文


Golang DB.Put方法代码示例

本文整理汇总了Golang中github.com/syndtr/goleveldb/leveldb.DB.Put方法的典型用法代码示例。如果您正苦于以下问题:Golang DB.Put方法的具体用法?Golang DB.Put怎么用?Golang DB.Put使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在github.com/syndtr/goleveldb/leveldb.DB的用法示例。


在下文中一共展示了DB.Put方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。

示例1: cacheStore

// write to leveldb immediately
func cacheStore(db *leveldb.DB, node *osmpbf.Node) {
	id, val := formatLevelDB(node)
	err := db.Put([]byte(id), []byte(val), nil)
	if err != nil {
		log.Fatal(err)
	}
}
开发者ID:piemapping,项目名称:pbf2json,代码行数:8,代码来源:pbf2json.go

示例2: saveItem

func saveItem(db *leveldb.DB, it *gohn.Item) {
	pbmsg, err := proto.Marshal(it)
	check(err)
	key := []byte(strconv.Itoa(int(it.GetId())))
	err = db.Put(key, pbmsg, nil)
	check(err)
}
开发者ID:peterjliu,项目名称:gohn,代码行数:7,代码来源:main.go

示例3: dbPut

/*
	/Put the DATABASE
	/Write the Key and Value
*/
func dbPut(dbObj *leveldb.DB, putData string, putDBKey []byte) int {
	var result int = 0

	putError := dbObj.Put([]byte(putDBKey), []byte(putData), nil)
	if putError != nil {
		result = 1
	}
	return result
}
开发者ID:takumigashira,项目名称:go-bus,代码行数:13,代码来源:connectsdb.go

示例4: setVersion

func setVersion(db *leveldb.DB, version int64, wo *opt.WriteOptions) error {
	buf := make([]byte, 8)
	order.PutUint64(buf, uint64(version))
	err := db.Put([]byte(versionKey), buf, wo)
	if err != nil {
		clog.Errorf("Couldn't write version!")
		return err
	}
	return nil
}
开发者ID:rlugojr,项目名称:cayley,代码行数:10,代码来源:quadstore.go

示例5: levelDbWrite

func levelDbWrite(db *leveldb.DB,
	key uint64, offset uint32, size uint32) error {
	bytes := make([]byte, 16)
	util.Uint64toBytes(bytes[0:8], key)
	util.Uint32toBytes(bytes[8:12], offset)
	util.Uint32toBytes(bytes[12:16], size)
	if err := db.Put(bytes[0:8], bytes[8:16], nil); err != nil {
		return fmt.Errorf("failed to write leveldb: %v", err)
	}
	return nil
}
开发者ID:tnextday,项目名称:seaweedfs,代码行数:11,代码来源:needle_map_leveldb.go

示例6: saveVideos

func saveVideos(db *leveldb.DB, videos Videos) {
	for _, video := range videos {
		data, _ := db.Get([]byte(video.Url), nil)

		if len(data) == 0 {
			encoded, _ := json.Marshal(video)

			_ = db.Put([]byte(video.Url), []byte(encoded), nil)
		}
	}
}
开发者ID:unbalancedparentheses,项目名称:conversaciones_lanacion,代码行数:11,代码来源:scraper.go

示例7: fSaveTerm

func (rn *RaftNode) fSaveTerm(i int) {
	var currentTermDB *leveldb.DB
	var err error
	currentTermDB, err = leveldb.OpenFile(PATH+"/currentTerm", nil)
	for err != nil {
		currentTermDB, err = leveldb.OpenFile(PATH+"/currentTerm", nil)
	}
	// fmt.Println("sad", currentTermDB, reflect.TypeOf(currentTermDB), err, reflect.TypeOf(err))
	defer currentTermDB.Close()
	currentTermDB.Put([]byte(strconv.Itoa(rn.sm.ServerID)), []byte(strconv.Itoa(i)), nil)

}
开发者ID:sidutta,项目名称:cs733,代码行数:12,代码来源:wrapper.go

示例8: fSaveVotedFor

func (rn *RaftNode) fSaveVotedFor(i int) {

	var votedForDB *leveldb.DB
	var err error
	votedForDB, err = leveldb.OpenFile(PATH+"/currentTerm", nil)
	for err != nil {
		votedForDB, err = leveldb.OpenFile(PATH+"/currentTerm", nil)
	}

	defer votedForDB.Close()
	votedForDB.Put([]byte(strconv.Itoa(rn.sm.ServerID)), []byte(strconv.Itoa(i)), nil)
}
开发者ID:sidutta,项目名称:cs733,代码行数:12,代码来源:wrapper.go

示例9: writeToDB

//Write entry to leveldb
func (e *LogItem) writeToDB(db *leveldb.DB) error {
	var network bytes.Buffer
	enc := gob.NewEncoder(&network)
	err := enc.Encode(e)
	if err != nil {
		panic("gob error: " + err.Error())
	}
	buf := make([]byte, 8)
	binary.LittleEndian.PutUint64(buf, e.Index)
	err = db.Put(buf, []byte(network.String()), nil)
	return err

}
开发者ID:myc880628,项目名称:Raft,代码行数:14,代码来源:log.go

示例10: InjectLevelDB

func InjectLevelDB(jsEngine *JSEngine, db *leveldb.DB) {
	jsEngine.Run("var db = {};")
	dbValue, _ := jsEngine.Get("db")
	dbObj := dbValue.Object()
	dbObj.Set("put", func(call otto.FunctionCall) otto.Value {
		key, err := call.Argument(0).ToString()
		if err != nil {
			log.Println("Error:", err.Error())
			return otto.FalseValue()
		}
		value, err := call.Argument(1).ToString()
		if err != nil {
			log.Println("Error:", err.Error())
			return otto.FalseValue()
		}

		err = db.Put([]byte(key), []byte(value), nil)
		if err != nil {
			log.Println("Error:", err.Error())
			return otto.FalseValue()
		}
		return otto.TrueValue()
	})
	dbObj.Set("get", func(call otto.FunctionCall) otto.Value {
		key, err := call.Argument(0).ToString()
		if err != nil {
			log.Println("Error:", err.Error())
			return otto.FalseValue()
		}
		data, err := db.Get([]byte(key), nil)
		if err != nil {
			log.Println("Error:", err.Error())
			return otto.FalseValue()
		}
		v, _ := otto.ToValue(string(data))
		return v
	})
	dbObj.Set("remove", func(call otto.FunctionCall) otto.Value {
		key, err := call.Argument(0).ToString()
		if err != nil {
			log.Println("Error:", err.Error())
			return otto.FalseValue()
		}
		err = db.Delete([]byte(key), nil)
		if err != nil {
			log.Println("Error:", err.Error())
			return otto.FalseValue()
		}
		return otto.TrueValue()
	})
}
开发者ID:teamSUDOs,项目名称:localise-it,代码行数:51,代码来源:js.go

示例11: doOperation

func doOperation(fileNm []byte, finalByt []byte, cmdTyp string, fileDB *leveldb.DB, wo *opt.WriteOptions) {

	var err error

	mutex.Lock()
	switch cmdTyp {
	case "write":
		err = fileDB.Put(fileNm, finalByt, nil)
	case "delete":
		err = fileDB.Delete([]byte(fileNm), wo)
	}
	mutex.Unlock()
	checkError(err)
}
开发者ID:saurabhjambhule,项目名称:cs733,代码行数:14,代码来源:server.go

示例12: doWrite

func doWrite(cmd *utils.Cmd, db *leveldb.DB) *utils.Cmd {

	dirMutex.Lock()
	defer dirMutex.Unlock()
	fi := dir[cmd.Filename]
	if fi != nil {
		if fi.Timer != nil {
			fi.Timer.Stop()
			fi.Timer = nil
		}
	} else {
		fi = &Metadata{}
	}

	if cmd.Exptime != 0 {
		dur := time.Duration(cmd.Exptime) * time.Second
		fi.Exptime = time.Now().Add(dur)
		// create timer for deletion
		timerFunc := func(name string, ver int64) func() {
			return func() {
				doDelete(&utils.Cmd{Type: "delete",
					Filename: name,
					Version:  ver}, db)
			}
		}(cmd.Filename, gversion)

		fi.Timer = time.AfterFunc(dur, timerFunc)

	}
	err := db.Put([]byte(cmd.Filename), cmd.Content, nil)

	if err != nil {
		log.Fatal(err)

	}

	gversion += 1
	fi.Version = gversion
	fi.Numbytes = cmd.Numbytes
	dir[cmd.Filename] = fi

	return &utils.Cmd{Type: "O", Version: gversion}
}
开发者ID:pratyakshs,项目名称:cs733,代码行数:43,代码来源:server.go

示例13: applyLog

func applyLog(sc *ServerConfig, store *leveldb.DB) {
	timer := time.NewTimer(500 * time.Millisecond)
	var er error
	for {
		<-timer.C
		dbg4.Println(sc.basicCluster.Mypid, "logAplied", sc.commitIndex, sc.lastApplied, sc.votedFor)
		for i := sc.lastApplied + 1; i < sc.commitIndex; i++ {
			logMsg := sc.log[i].Msg.(string)
			splits := strings.Split(logMsg, " ")
			//dbg5.Println(splits)
			if splits[0] == "set" {
				er = store.Put([]byte(splits[1]), []byte(splits[2]), nil)
				//dbg5.Println("storing", er)
				if er == nil {
					sc.lastApplied += 1
				}
			}
		}
		timer = time.NewTimer(500 * time.Millisecond)
	}
}
开发者ID:vibhor1403,项目名称:KVStore,代码行数:21,代码来源:Raft.go

示例14: update

func update(db *leveldb.DB, id protocol.DeviceID, addrs []address) {
	var newAddrs addressList

	val, err := db.Get(id[:], nil)
	if err == nil {
		newAddrs.UnmarshalXDR(val)
	}

nextAddr:
	for _, newAddr := range addrs {
		for i, exAddr := range newAddrs.addresses {
			if bytes.Compare(newAddr.ip, exAddr.ip) == 0 {
				newAddrs.addresses[i] = newAddr
				continue nextAddr
			}
		}
		newAddrs.addresses = append(newAddrs.addresses, newAddr)
	}

	db.Put(id[:], newAddrs.MarshalXDR(), nil)
}
开发者ID:mapleshadow,项目名称:discosrv,代码行数:21,代码来源:main.go

示例15: clean

func clean(statsLog io.Writer, db *leveldb.DB) {
	for {
		now := next(cacheLimitSeconds)
		nowSecs := now.Unix()

		var kept, deleted int64
		iter := db.NewIterator(nil, nil)
		for iter.Next() {
			var addrs addressList
			addrs.UnmarshalXDR(iter.Value())

			// Remove expired addresses
			newAddrs := addrs.addresses
			for i := 0; i < len(newAddrs); i++ {
				if nowSecs-newAddrs[i].seen > cacheLimitSeconds {
					newAddrs[i] = newAddrs[len(newAddrs)-1]
					newAddrs = newAddrs[:len(newAddrs)-1]
				}
			}

			// Delete empty records
			if len(newAddrs) == 0 {
				db.Delete(iter.Key(), nil)
				deleted++
				continue
			}

			// Update changed records
			if len(newAddrs) != len(addrs.addresses) {
				addrs.addresses = newAddrs
				db.Put(iter.Key(), addrs.MarshalXDR(), nil)
			}
			kept++
		}
		iter.Release()

		fmt.Fprintf(statsLog, "%d Kept:%d Deleted:%d Took:%0.04fs\n", nowSecs, kept, deleted, time.Since(now).Seconds())
	}
}
开发者ID:mapleshadow,项目名称:discosrv,代码行数:39,代码来源:main.go


注:本文中的github.com/syndtr/goleveldb/leveldb.DB.Put方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。