当前仓库属于暂停状态,部分功能使用受限,详情请查阅 仓库状态说明
34 Star 112 Fork 32

John / gkvdb
暂停

 / 详情

设置数据后直接读取可以读取 但是再次读取则不能正常读取

已完成
创建于  
2018-12-06 12:03
package main

import (
	"encoding/binary"
	"fmt"
	"gitee.com/johng/gkvdb/gkvdb"
)

const (
	PidLen      = 8
	SIndexLen   = 1
	KeyLen      = PidLen + SIndexLen
	PTIdLen     = 8
	SILen       = 8
	RelValueLen = PTIdLen + SILen
)

type Relation struct {
	Pid    uint64
	SIndex byte
	PT     uint64
	SI     uint64
}

func main() {
	fileName := "./testdata"
	db, err := gkvdb.New(fileName)
	if err != nil {
		fmt.Println(err)
		return
	}

	rels := []Relation{
		Relation{
			Pid:    0x00f65483de1fae44,
			SI:     1,
			SIndex: 0,
			PT:     0x037f363f03c0a00,
		},
		Relation{
			Pid:    0x00f65483de1fae44,
			SI:     2,
			SIndex: 1,
			PT:     0x037f363f03c0a00,
		},
		Relation{
			Pid:    0x00f65483de1fae44,
			SI:     3,
			SIndex: 2,
			PT:     0x037f363f03c0a00,
		},
		Relation{
			Pid:    0x00f65483de1fae44,
			SI:     4,
			SIndex: 3,
			PT:     0x037f363f03c0a00,
		},
	}
	buf := make([]byte, KeyLen)
	val := make([]byte, RelValueLen)
	for _, rel := range rels {
		binary.BigEndian.PutUint64(buf, rel.Pid)
		buf[SILen] = rel.SIndex
		binary.BigEndian.PutUint64(val, rel.PT)
		binary.BigEndian.PutUint64(val[PTIdLen:], rel.SI)
		fmt.Printf("%x, %x\n", buf, val)
		if err := db.Set(buf, val); err != nil {
			fmt.Println(err)
			return
		}

		val := db.Get(buf)
		fmt.Printf("%x, %x\n", buf, val)
	}

	for _, rel := range rels {
		binary.BigEndian.PutUint64(buf, rel.Pid)
		buf[SILen] = rel.SIndex

		val := db.Get(buf)
		fmt.Printf("%x, %x\n", buf, val)
	}

}

这个是测试代码

评论 (4)

vritual 创建了任务
vritual 修改了描述
John 任务状态待办的 修改为进行中
展开全部操作日志

我试试

BUG已修复,原因是写入的[]byte是指针类型,存入时指针指向的内容已经发生改变,该patch最近会提交更新。

@vritual 已修复提交。

John 任务状态进行中 修改为已完成

后面改用其他的kv库了 但是还是十分感谢

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
1309327 johng 1705475649
Go
1
https://gitee.com/johng/gkvdb.git
git@gitee.com:johng/gkvdb.git
johng
gkvdb
gkvdb

搜索帮助

53164aa7 5694891 3bd8fe86 5694891