1
0
mirror of https://github.com/taigrr/bitcask synced 2025-01-18 04:03:17 -08:00

Add List, Hash and SortedSet data types

This commit is contained in:
2020-06-06 23:02:48 +10:00
parent 4aa4d1f198
commit c3bda39067
11 changed files with 723 additions and 0 deletions

27
tests/test_hash.go Normal file
View File

@@ -0,0 +1,27 @@
package main
import (
"log"
"github.com/prologic/bitcask"
)
func main() {
db, err := bitcask.Open("test.db")
if err != nil {
log.Fatal(err)
}
l := db.Hash([]byte("foo"))
err = l.Set([]byte("1"), []byte("one"))
if err != nil {
log.Fatal(err)
}
err = l.Set([]byte("2"), []byte("two"))
if err != nil {
log.Fatal(err)
}
err = l.Set([]byte("3"), []byte("three"))
if err != nil {
log.Fatal(err)
}
}

33
tests/test_list.go Normal file
View File

@@ -0,0 +1,33 @@
package main
import (
"fmt"
"log"
"github.com/prologic/bitcask"
)
func main() {
db, err := bitcask.Open("test.db")
if err != nil {
log.Fatal(err)
}
l := db.List([]byte("foo"))
err = l.Append([]byte("one"))
if err != nil {
log.Fatal(err)
}
err = l.Append([]byte("two"))
if err != nil {
log.Fatal(err)
}
err = l.Append([]byte("three"))
if err != nil {
log.Fatal(err)
}
len, err := l.Len()
if err != nil {
log.Fatal(err)
}
fmt.Printf("len: %d\n", len)
}

31
tests/test_sortedset.go Normal file
View File

@@ -0,0 +1,31 @@
package main
import (
"fmt"
"log"
"github.com/prologic/bitcask"
)
func main() {
db, err := bitcask.Open("test.db")
if err != nil {
log.Fatal(err)
}
z := db.SortedSet([]byte("foo"))
added, err := z.Add(
bitcask.Int64ToScore(1), []byte("a"),
bitcask.Int64ToScore(2), []byte("b"),
bitcask.Int64ToScore(3), []byte("c"),
)
if err != nil {
log.Fatal(err)
}
fmt.Printf("added %d\n", added)
score, err := z.Score([]byte("b"))
if err != nil {
log.Fatal(err)
}
fmt.Printf("score: %d\n", bitcask.ScoreToInt64(score))
}

BIN
tests/tests Executable file

Binary file not shown.